我正在调试Visual Studio 2015中的.NET 4.0应用程序。我的应用程序生成并运行良好,但是当我尝试编辑并在调试器下运行时继续,无论我在主项目中做了哪些更改或做出了哪些更改,我都会看到一个对话框,内容如下:错误CS7038(未能发出模块)只在编辑并继续
进行了编辑,但无法编译。执行不能继续 ,直到编译器错误得到解决。
作为排序我谈论变化的一个例子,我试图加入这一行的各种方法:
Console.WriteLine("foo");
当我看到在Visual Studio中的错误列表窗格中,我看到只有一个错误,CS7038,描述“无法发射模块'<my app name>
'”。没有给出文件名,行号或字符。我的代码中没有扭曲的红色下划线。如果我停止正在运行的应用程序,请使用更改进行构建,然后再次运行,所有内容都将生成并运行良好。所以编译时编译器和编译和继续编译器认为可以接受的东西似乎有一些差异。
有谁知道一种方法来获取更多关于的信息为什么编辑在编辑和继续模式下失败?我读了一些关于连接和调试VBCSCompiler进程的内容,所以我尝试了这一点,但即使所有异常类型在抛出时都设置为中断,附加的VS也不会中断。
我没有分享任何代码,因为这不是关于我的代码的问题,而是有关找出编辑和继续编译器认为是错误的策略,而且我知道编译器错误的来源可能在我整个项目中的任何地方。
编辑:
正如在评论中提到的,我能够调试器附着在Visual Studio和突破时,一个异常被在点击“继续”编辑代码后抛出。例外是System.NotSupportedException
,并显示以下消息:“在调试期间不允许更改程序集引用的版本”。它列出了有问题的程序集的名称,这是我的应用程序使用的一个小型VB.Net项目,主要使用C#。我正在尝试构建一个MCVE以提交给Microsoft,但目前我无法在仅使用一个VB和一个C#项目的较小解决方案中重现该问题。
编辑2:
我找到了一个解决方法和自我回答的情况下,任何人的问题遇到过这个奇怪的问题,但我保留了“回答”对号的人谁可以解释发生了什么(为什么编辑器认为引用项目的版本号在编辑过程中发生了变化)。
你是否杀死了VS的所有实例并重新启动?你重置VS设置?如果没有,我会从那里开始。 – David
我已经重新启动VS,是的。没有重置VS设置,这听起来很可怕。有没有办法保存设置,以便在不能解决问题的情况下恢复它们? – adv12
是的。转到工具 - >导入和导出设置。从那里你可以保存当前的设置(导出),重新加载旧的设置(导入)或全部重置。如果您选择全部重置,则下一个屏幕会询问您是否想要先导出当前设置(建议)。 – David