以下模块是在启用优化或没有调试信息的情况下构建的


139

调试时,我无法在VS 2008 Web项目中摆脱这一点。我已经检查了它是否在非Web项目中处于调试模式,并且处于Active(Debug)状态。在Windows中删除了.NET 2.0临时文件夹中的所有项目。不知道这里还有什么。

Answers:


187

尝试在工具/选项/调试/选项中禁用“仅启用我的代码”。


我做到了,它奏效了。我能够使用断点并逐步执行代码。我不明白 为什么起作用?(我正在调试使用VS2010的Win Service引用的Managed C ++模块)
tzup 2010年

我刚遇到这个问题,您的解决方案为我工作。谢谢!
Colin O'Dell,2010年

5
它的工作原理,但在调试时可能会引起一些不必要的副作用: blogs.devsource.com/devlife/content/net_general/...
user276648

2
在VS2010中,此复选框位于“调试”>“选项和设置”中,然后在“调试”>“常规”下
Cookie

这是由于重建选项而起作用的吗?怎么了 我确实解决了问题,但是为什么呢?
jeremy.bass 2012年

83

我遇到了同样的问题,发现我没有在构建中输出调试信息。如果右键单击项目并转到“属性”,然后选择“构建”选项卡,则在页面底部有一个“高级...”按钮,该按钮将显示您的设置以输出调试信息。将其设置为“ full”,错误应消失。

在此处输入图片说明


1
这是正确的答案。要在开发模式下本地调试应用程序时,应输出“完整”调试信息。您应该这样做而不是“启用我的代码”答案,因为该答案会产生意想不到的副作用(如上所述)。
Tod Thomson

1
@Tod Thomson,我不确定您为什么声称这是正确的答案,因为我刚才在调试Web应用程序并尝试输入类库时看到此消息,因此与问题中所述的配置非常相似。我的调试信息设置已满,我没有理由相信它与以往不同。
R. Schreurs

1
@ R.Schreurs我尝试了此页面上的所有其他操作,而对我而言唯一有效的方法是此答案。如果对您不起作用,请在此处尝试其他操作/提供您自己的答案。
Tod Thomson

这是微软的错误。不要说“应该”。除非您说“错误应该消失,但是是Microsoft,所以您应该重新考虑生活”
user1566694 2015年

24

我刚遇到这个问题,很快就决定发布的其他答案不适用于我。

禁用

我是该项目的所有者,而且我知道它是用调试信息构建的,并且没有优化。此外,我永远不愿意将禁用警告作为第一选择。隐藏/忽略此警告可能会在以后的调试会话中成为问题。

由于这种情况仅在我签署程序集后才开始发生,因此使我陷入了快速修复:暂时删除DLL的强名称(并消耗EXE)。瞧!问题解决了。

更好的长期解决方案可以采用添加后生成操作的形式来更新GAC,以便它具有最新版本的签名DLL。

但就目前而言,我很乐意继续进行这种转移,并继续致力于将我带入此调试会话的问题。


4
我处于与您类似的情况,但采取了简单的方法...我卸载了将该DLL放入GAC的程序,因为它只是我调试的旧版本。
SeeMoreGa13年

2
还建议您解决问题的根源+1,而不是像其他建议建议的那样仅启用替代方法,请取消勾选“仅启用我的代码”
SeeMoreGain 2013年

17

解决。删除了问题dll的所有出现(所有项目)。


1
我关闭了所有VS / VWD会话,在这些会话中打开了引用的项目和有效的解决方案。然后,我删除了问题dll及其伴随的pdbs的每个实例。接下来,我删除了.NET Framework结构中临时调试网站位置下的所有内容(对于该项目,它是C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files [myWebsite])。在关闭VWD之前,这给了我早期版本之一的“正在使用文件”错误。然后,我重新打开了项目,并修复了项目代码中的所有未解决错误和警告。只有这样,错误才会消失。
BH 2014年

14

VS2012,清理并重建为我解决了此问题。未选中“属性”->“构建”->“优化代码”。“属性”->“构建”->“高级”->调试信息:完整


我们需要更改设置

这在调试Visual Studio 2010加载项时对我有用。以前设置为none
Sabuncu 2015年

对我而言不起作用,但是在删除bin和obj文件夹之后,清理并重建解决方案再次起作用:)
QMaster


7

猜测VS 2008无法正确重建dll。

1)删除所有出现的dll

2)重建解决方案

那应该解决它。


我删除了Web应用程序的bin目录,然后全部重建。修好了!
船长明智

6

检查您的构建配置选项。确保关闭优化并定义DEBUG常量。


选择了构建,并且肯定没有进行优化。

6

如果其他所有操作均失败,请尝试在项目的属性中重命名Assembly名称。这为我解决了这个问题。


在花了几个小时并搜寻了Internet并尝试了我遇到的所有内容之后,此方法成功了。是否必须缓存某些内容?
克里斯·R

6

我也遇到了这个问题,由于某种原因,它发生了3到4次。我认为这一定是Visual Studio 2005错误/错误(至少是我的安装)。

每次都有效:要修复它,我

  1. 右键单击我的解决方案,然后单击属性。
  2. 打开配置管理器。
  3. 在下拉菜单中选择“调试”(如果尚未选择)。
  4. 取消选中BUILD。然后重新检查。
  5. 重建解决方案。

4

“工具”>“选项”>“调试”>“符号”>“指定排除的模块”,以查看“排除的模块”列表中的dll或exe


3

至少对于非Web应用程序,它可以工作:

来自:http : //www.stellarpc.com/articles/board.aspx?id=40

2-允许调试...

由于在您的应用程序中内置了其中一个程序集的性质,您将需要更改一些设置以允许Visual Studio调试器处理代码。

在解决方案资源管理器中右键单击任何有问题的项目,然后选择“属性”。这将打开项目属性面板,使我们可以访问项目的很多选项。导航到“ Complile”选项卡(如果在C#环境中则为“ Build”),然后从屏幕底部选择“ Advanced Compile Options ...”。这为我们提供了一个提示,其中包含两个关键领域:

1)优化-取消选中“启用优化”

2)生成调试信息-确保将选项设置为“完整”


有趣的是...我的项目以这种方式配置,即使使用这种配置,消息仍然出现。因此,这还不是最终的解决方案
JuniorMayhé2011年

3

我在某个文件夹中有解决方案的问题,但是如果我将其移至另一个文件夹或由其他人构建了该解决方案,则不会收到此消息。我进行了清理,重建,甚至重新启动,但是如果没有此消息,仍然无法获取原始的调试信息。我在系统中搜索了导致错误的文件副本,发现副本保存在

c:\ User \用户名\ AppData \ Local \ Assembly \ dl3

这是在Win7-64上,但在其他Windows操作系统上将类似。我删除了在那里找到的所有副本,并且不再收到该消息。我不需要取消选中“仅启用我的代码”。

另外,这是针对WPF应用程序的,但是我在搜索中遇到了这个线程,因此希望对其他人有所帮助。


3

通过执行以下步骤,我能够解决此问题:

  1. 右键单击解决方案(而不是项目),然后选择“属性”
  2. 在左侧面板中,选择“配置属性”
  3. 在右侧面板中,为项目选择“配置”列下的“调试”

如果您没有在解决方案资源管理器中看到解决方案,请按照下列步骤操作:

  1. 在菜单栏中,转到工具->选项
  2. 在左侧面板中,选择“项目和解决方案”(您可能需要选中窗口左下角的“显示所有设置”
  3. 在右侧面板中,选中“始终显示解决方案”

我希望这有帮助。


2

我也有这些。我已经完成了所有这一切。似乎每当我从源代码控制中获得整个解决方案的新副本时,这种情况对我来说都是发生的。因此,如果我们已完成所有这些操作,请删除Web项目中所有引用(程序集)的dll和.pdb文件,使用解决方案上的clean选项,删除临时文件,关闭VS并重新打开,确保选择了调试模式并设置为满,优化已关闭,还有什么呢?!?!?!


我也很想办法。它甚至无法生成pdb文件。
Xar 2012年

2

我在Visual Studio 2010的Web项目中遇到了同样的问题,最后我找到了收到此消息的原因。我所做的是更改Visual Studio上的现有调试选项:

  • 转到工具->选项->调试->符号->所有模块
  • 选中“除非排除”单选按钮
  • 单击链接“指定排除的模块”,然后删除要调试的DLL。

就我而言,这是我的网络dll文件...


2

在尝试远程调试属于不同子网的计算机上的应用程序时遇到了这个问题。如果机器在同一子网中,则可以在网络上运行时调试并逐步执行代码。在更改了子网之后,尽管从网络运行时我无法单步执行并得到“以下模块是在启用优化的情况下或没有调试信息的情况下构建的”。

解决方案?简单。将构建的解决方案复制到托管远程调试的计算机上,然后在本地运行。


2

在VS 2010 winForms项目上发生了这种情况吗?看到这里的大多数人都有Web项目,我认为这与访问存储项目的文件夹有关。我之所以这样说,是因为当我遇到此问题时,Google云端硬盘正在同步保存我的项目的文件夹。似乎仅禁用同步并不能解决问题。

我的解决方案类似于以上答案之一:

  • 转到“项目属性>编译>高级编译选项”
  • 选中“启用优化”
  • 将“常规调试信息:”设置为“无”
  • 取消选中“定义调试常量”
  • 然后按确定
  • 然后返回,将选项恢复为初始状态。

希望这对某人有所帮助,因为看来这仍然会发生。


2

请遵循以下步骤:(首先停止调试)
1:右键单击项目解决方案名称项目 -> 属性
2:在“ 配置属性”下选择配置管理器
3:更改要调试的配置, 然后单击关闭 4:更改要调试的配置,然后单击“ 应用”- >确定,现在重建解决方案...。


1

对我来说,选中项目属性中的“优化代码”框,然后保存,取消选中它,然后重新保存,这对我来说是可行的。

禁用“仅启用我的代码”也可以,但是这不是解决方法,而是修复方法,因为我不想使用该设置。


1

我遇到过同样的问题,但是原因和解决方法不同。窗口与Gustavo显示的窗口相同(上图),但路径位于: “ \ users \ zzz \ AppSettings ...”(其中zzz是Windows用户名)

我有一个Excel插件-我正在测试插件的安装,因此我通过VS安装功能安装了一个副本。VS显然在尝试调试已安装的副本和我刚刚启动的副本,并且在已安装的副本上找不到调试符号。

以上解决方案均无效(无副作用),

解决方案: 卸载外接程序,然后手动删除“应用程序设置”中的文件即可。


0

你提到这是一个网络项目...你有吗

<compilation debug="true />

在您的web.config中?


0

使用Release配置进行构建后,我遇到了同样的问题。原来,当我切换回Debug时,VS并未检测到任何差异,因此它没有更新bin文件夹中的.dll和.pdb文件。

这对我有用:

  1. 运行iisreset(清理临时文件夹)
  2. 保存web.config(强制VS实际重建)
  3. 调试时重建
  4. 开始项目

您为什么不只使用“生成”菜单上的“重建”命令?这将强制重建所有模块,无论是否检测到更改。
罗恩

@Ron抱歉,我不记得这是一段时间前的所有详细信息,我认为该版本存在问题,并且从生成菜单进行重建并没有按预期清除文件。
bubbassauro 2013年


0

我的情况如下:Web服务引用了lib1.dll。后来我删除了引用,因为它已不再使用。但是lib1.dll保留在bin文件夹中。由于未引用库,因此“重建”和“清理”操作无济于事。从bin文件夹中手动删除lib1.dll后,我摆脱了此消息。


0

如果要发布到IIS而不使用内置的Web服务器(或IIS Express),请确保发布配置文件设置处于调试模式。在vs 11中,默认情况下处于发布模式。


0

补充一下,我正在看这个博客,以找到解决我所面临的相同问题的解决方案。不幸的是,上述解决方案对我没有帮助。最后,我弄清楚了,我正在通过安装程序安装我的位(以及.pdb),并在安装文件夹中显式设置权限。

由于这个原因,即使文件浏览器显示了正确的文件,VS也无法加载pdb,但它给出了与上述相同的错误。

取消选中“仅启用我的代码”并从安装程序中删除权限设置后,VS开始加载该模块。


0

对我有用的一种配置如下

项目->(您的项目)属性->调试选项卡,确保将配置设置为活动(调试),在“无法调试器”下,确保选中了“启用非托管代码调试”


0

我正在创建Windows服务,这对我有用:

  • 卸载服务。
  • 打开命令提示符,然后转到c:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
  • installutil C:\ MyFantabulusWindowService \ bin \ Debug \ MyFantabulusWindowService.exe

伟大已经实现!


0

案例:在SharePoint开发中使用控制台项目测试程序集-如果您正在执行SharePoint开发并在VS中看到此警报,请确保在测试控制台应用程序之前将SP程序集部署到GAC,前提是您的核心SP项目具有所需的方法调用控制台测试应用。

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.