Visual Studio 2015项目不再以调试模式运行


95

即使在Debug配置中运行,这也是我得到的:

我要显示的方式是启用“仅我的代码”并警告启动时是否没有任何用户代码。这是我们项目最近发生的事情,我不确定我们是怎么做的。但是我一直无法解决。断点不会触发,快速监视会给出奇怪的结果。

我已经尝试过搜索该问题,但是没有标准的“断点不会触发”解决方案起作用。我全都没主意了。

我已经检查了配置管理器,每个项目也都设置为“调试”。

在此处输入图片说明

我关闭了“启用优化”,并且不再得到“您正在调试发布版本”对话框。它再次运行并在断点处停止!但是,输出窗口在启动时显示以下内容:

未加载模块“ Navigo.exe”的符号。

  1. 使用调试版本配置或禁用调试选项“仅启用我的代码”。
  2. 检查调试选项下的“符号”设置。

因此,这解决了我的主要问题,即不再能够使用断点和弹出窗口。这很奇怪,因为我认为您需要加载符号才能使断点正常工作。那么如果没有加载符号,断点如何工作?也许这只是一个坏消息?


简而言之,您遇到了一些我们不知道的问题。您更改了全局调试器设置,现在遇到了两个问题。将所有内容恢复原状并描述您的第一个问题。
汉斯·帕桑

@HansPassant这是原始问题。一旦我们升级到使用VS2015,这似乎已经开始发生。在发布之前,我已经撤消了我的所有“这项工作都会做”的更改。取消选中“优化代码”似乎有所帮助。有关更多详细信息,请参见有问题的更新2。

您能说明您的解决方案是什么吗?什么是项目,它们使用的语言是什么,它们的目标是什么,这是启动项目?
Lucian Wischik 2015年

再次启用“仅我的代码”。您正在尝试调试没有源代码的引用程序集?
伊戈尔·基里诺

Answers:


95

使用配置管理器来检查什么实际的设置对于调试配置-这是在菜单生成Configuration Manager中...... -如果他们被设置为使用版本

配置管理器

另外,请确保项目正确定义了DEBUG,并且未选中“优化代码”:

物产


2
我刚刚检查过,它们都设置为“调试”。我已经用截图更新了帖子。还有其他想法吗?

1
编辑了我的问题。优化代码已选中,取消选中似乎有所帮助。但请参阅问题以获取详细信息。
2015年

1
@Sen好像有人错误配置了您的调试构建设置。具有优化代码的调试版本没有任何意义。至于符号问题:也许有人禁用了那些调试版本?点击构建设置中的“高级”按钮,并检查调试构建中的“调试信息”是否设置为“完整”。
cremor

6
取消选中“优化”代码就可以了。不知道如何检查,但是一旦退出,一切似乎又开始工作了。所有其他调试设置都是正确的,这是唯一的解决方法。我也不再收到“未加载符号”消息。

94

我在几个项目上也遇到了这种情况。我按照stuartd的建议检查了构建设置。但是,在我的构建设置中启用“优化代码” 。所以我启用了它并保存了项目。然后我取消选中它并再次保存。问题解决了。

有某种错误会导致将该--optimize+标志传递给调试器。在修复该错误之前,先启用它然后禁用它是一个简单的解决方法。


1
我以前在IntelliJ IDE中已经看到过,但是直到现在都没有在Visual Studio中看到过。奇怪的是,这也对我有用。
ZaneDarken

1
2017年更新:在Visual Studio 2015 Update 3中仍然看到此问题。这个答案做到了。
Lews Therin

1
这个答案也修复了我的调试环境。谢谢 !
bob.mazzo

1
哇!我遇到了这个确切的问题,这也对我有用。VS 2015 U3。令人难以置信...
AbeyMarquez

1
VS2017社区,仍然存​​在此问题。感谢您的解决方案
William Borgo

20

应用更新1后,这开始发生在我身上。现有项目开始显示此内容,我可以使用一个全新的项目来复制它。所有的配置设置为DEBUG,并优化检查。

更重要的是,第一次运行项目(或在清理之后)运行得很好,没有任何消息。停止,然后重新运行该项目(注意-该项目不会重新构建)将显示该对话框。

唯一的解决方案是关闭“ 我的代码”选项-这似乎很hack,因为Update 1之前没有任何问题。


6
对于它的价值,Microsoft支持已再现了该问题并正在调查。一听到,我就会回报/回答。
约翰·T

2
在VS2015 Update 1之后出现了相同的情况和症状。在每次调试会话之前运行Clean都可以用作解决方法,因为在此之后的第一次,它确实可以正常工作。只是做了重建是足够的,清洁是必要的。
AronVanAmmers

2
微软的说法是,这是一个已知问题(它最初是由Debugger团队负责的,但后来确定是构建问题,现在已由Project系统团队掌握。与此问题有关的还有其他错误,优先级为1,因此应该进行下一次更新,尽管可以预料,但不能保证何时发布(或更新中实际包含什么)。 –至少在Debugging General Options中关闭“ Enable Just My Code”似乎是一种解决方法
John T

是否有此问题的链接,以便我们可以跟踪它的进展?
SkyrawrCode


13

如果上述解决方案均无济于事,请检查项目的AssemblyInfo.cs中是否有明确的DebuggableAttribute应用程序。似乎它覆盖了编译器的调试/发布选项。

就我而言,我在文件中有这一行(旧项目,不知道它是如何到达的)。删除它可以解决问题:

[assembly: System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]

2
谢谢你 我正在一个项目中,我的客户丢失了原始源代码,因此必须使用反编译器生成它。我唯一的猜测是,反编译器把这个通车。
jebar8

是的,这可能也是我的原因。感谢分享。
德米特里·罗泰


9

我也遇到了这个问题。解决该问题的方法是简单地清理(Build > Clean Solution)和重建(Build > Rebuild Solution)我的项目。


你能详细说明吗?例如,如何执行操作(要调用的菜单命令等)?
彼得·莫滕森


3

只需在stuartd的答案中添加一个旁注

确保检查所有依赖项目的相同构建设置。如果您的主项目具有正确的设置,您将得到相同的消息提示,而您的从属项目则没有。事后看来,这显然很有意义,但这并不是想到的第一件事。


3

就我而言,问题是IIS 项目URL我的ASP.NET项目属性Web选项卡设置为错误的URL。

它指向的是我与该项目的其他副本一起使用的http:// localhost。我打开的解决方案的地址实际上是在本地IIS上配置为http:// localhost:90

更改为正确的地址可以解决此问题。

在此处输入图片说明


2

我在此列表中尝试了几乎所有内容,但最后我通过打开解决方案属性并从“多个启动项目”切换到“单个启动项目”并再次返回来解决此问题。

  1. 右键单击解决方案,然后选择“属性”
  2. 在“公共属性”下,将选择“多个启动项目”更改为“单个启动项目”
  3. 点击确定
  4. 运行调试
  5. 结束调试并重复步骤1-3,但切换回“多个启动项目”
  6. 使用多个项目再次运行调试

2

我遇到了同样的问题...不管我做了什么,都没有效果。

问题是这是一个新的空项目。我最终删除了该项目并添加了一个新项目 -新项目必须有一个别的名字 ; 如果我使用相同的名称,则错误会再次出现-即使在重新启动,清理和重建之后……这肯定是Visual Studio 2015中的错误。


2

对我而言,这是来自私有NuGet服务器的NuGet参考。我不知道它是如何编译的,但是将引用更改为项目引用可以解决这个问题。


1

我已经在Visual Studio 2015 Express中打开了Visual Studio 2012 Pro项目,并且遇到了同样的问题。

我检查了我的解决方案属性→ 配置属性,发现一个项目设置为Release&x86。

我将其改回DebugAny CPU,提示消失了。


1

就我而言,我正在为Outlook开发VSTO插件,而Outlook在测试安装程序时意外加载了最近安装的DLL文件的发行版。

看起来Visual Studio试图使用该DLL,而不是我期望的Debug。修复了Outlook正在加载哪个DLL文件的问题,这对我来说已经解决了。


0

这里复制我的其他答案。

如@romanoza所述,Microsoft已使用以下信息更新了错误报告:

取消选中设置Debug-> Options->抑制模块加载时的JIT优化(仅托管)

这是解决方法。他们稍后再说:

我们建议人们不要选中它,因为选中它会提高性能和我的代码在特定情况下的行为。

最后,确认:

这是一个错误,无法启用该设置,因此我们正在针对这种情况进行修复,以防某些客户仍然希望在启用该设置的情况下进行调试。




0

解决步骤:

  • 转到有问题的项目的“ 属性”页面的“ 构建”设置。

  • 向下滚动到“高级...”按钮。

  • 确保“调试信息:”不是  设置为“无”

    我建议您使用完整选项。


请记住对要调试的所有程序集执行此操作。
伊戈尔·基里诺

0

在查看Patrick对该问题的评论链接后,有人指出一种解决方法是在IIS Express中停止该网站。。通过在Visual Studio中停止调试器之后执行此操作,可以防止出现相同的问题。

但是,我一直在研究它,并且我相信它也可能与调试器的“编辑并继续”设置有关。在Visual Studio的“ 工具” →“ 选项... ”菜单中禁用该功能后,我不再遇到问题。但这会阻止您使用“ 编辑并继续”功能,因此我不确定这是否值得。

菜单工具选项调试器编辑并继续(滚动到“常规”列表的底部)→取消选中“ 编辑并继续”复选框。

在安装Update 1之后,我也突然遇到了这种情况,但可能只是我一开始就设置了此设置...虽然我不确定。


0

如果您只需要继续前进而没有任何进一步的延迟,请从弹出菜单中选择最后一个选项,所有选项都将与以前一样运行。

在此处输入图片说明


JPEG图像不是截图的最佳选择。您可以将其替换为(清晰的)PNG版本(甚至是GIF)吗?
彼得·莫滕森

0

这是一个奇怪的警报。

重建解决方案不一定会清除所有DLL文件(尤其是从相关项目复制的DLL文件)。

但是,重建依赖项项目使此警报消失了。

我在Visual Studio 2015 Update 3中遇到了这个问题。


0

我的解决方案与其他解决方案有点不同,并且有点独特。

我正在使用一个包含托管代码和ASP Classic的网站,它们都引用同一程序集。Visual Studio抱怨我的托管DLL文件是发行版本。

这个问题在我的程序集中是一个未捕获的异常,但是它是由Interop被ASP Classic页面抛出的。Visual Studio无法处理此问题并显示错误消息。从托管代码引发的相同异常将按预期方式启动调试器。

更正托管程序集的构造函数中的问题后,所有问题均得以解决。

现在,我回顾一下全局,这一切都说得通了,但是当时,错误消息使我走上了一条很深的路,然后我在这里尝试了答案中的所有内容,直到得到“啊哈!”。时刻。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.