Visual Studio 2015中未生成pdb文件

29

我的解决方案在使用VS2013 (旗舰版)打开时有效,但在使用VS2015(企业版)打开时,两个项目不会生成调试信息。

一个项目是MVC 5应用程序,另一个是类库。解决方案中的所有项目都设置为.NET 4.5,并且都设置为调试模式。

这两个项目的高级设置都设置为完整,并且似乎编译没有问题,但是当我在站点运行时打开Debug > Windows > Modules窗口时,这两个二进制文件的符号状态显示为“二进制文件未构建调试信息”(解决方案中的其他二进制文件正确加载符号)。

我已经删除了bin/obj文件夹,清除了临时的asp.net文件,重新启动了VS和Windows(10),但仍然无法解决问题。

这影响到其他团队成员,所以它似乎不是我的环境问题。

另外,如果我在VS2013中进行编译,则VS2015将无问题地使用pdb文件,只是它本身不会生成它们。

我认为这是在VS2015中的某个设置/功能/错误,但我不确定还有什么我可以检查/更改以解决此问题。

编辑:Web项目的web.config已设置为debug="true",并且不受配置转换的影响。


2
配置是否设置为调试模式?如果没有,请将其设置为“调试”而不是“发布”。然后删除所有构建并重新构建。 - Fᴀʀʜᴀɴ Aɴᴀᴍ
忘了提到我已经检查过了 - 已更新问题 - dave clements
我在用户界面上没有找到任何选项,因此我在记事本中打开了csproj文件,并找到了<DebugType>none</DebugType>。然后,我通过将其与另一个临时项目进行比较,将其更改为“full”。 - Waqar
4个回答

30

原来,这是与PostSharp有关的问题。

这两个项目都引用了版本3.1.52。升级到4.1.21后,我们现在又可以生成pdb文件了。

我不太确定问题是什么或为什么会以这种方式表现出来,但希望这能防止其他人像我一样撞墙!


3
干杯。遇到了同样的问题。我喜欢PostSharp,但我开始怀疑它是否值得这么麻烦了。 - Matt Fitzmaurice
3
我也有同感。PostSharp 有时确实很麻烦。 - Ronan Lamour
这真让人沮丧。期待着将PostSharp从我的解决方案中除去。 - DeveloperRob
我曾经遇到过同样的问题。原来我的项目指向了GAC中的编译版本。我删除了该引用并重新添加了NuGet包。 - Harry Biscuit
1
请参考以下链接了解更多细节:https://dev59.com/AYzda4cB1Zd3GeqPlV7P - Steven Mark Ford

14

如果在项目中使用旧版的Telerik开放数据访问,则会出现相同的问题。通过VS2013生成项目时会生成pdp文件,但使用VS2015构建时不会生成。

找到原因需要花费大量的时间和精力,发现需要使用最新版本的Q2(该版本没有可视化设计器——Telerik Data Access的Q1 2015是最后一个分发Visual Studio集成和代码生成功能的版本)。

无论如何,请阅读Telerik支持博客:http://www.telerik.com/forums/visual-studio-2015-ctp6-does-not-generate-pdb-file


谢谢...没错,痛苦是一种轻描淡写的说法,而且失去了可视化设计师是一个巨大的损失。 - Dave Friedel

11

实际上,调试与是否生成pdb文件无关。许多人会为生产版本生成pdb文件并将其保存在本地符号存储中。

无论如何,尝试进入项目下的“生成”选项卡,然后选择“高级”选项,并将调试信息设置为仅限pdb或完整。


两个项目的高级调试信息已经设置为完整。 - dave clements
2
你正在使用任何Telerik產品嗎?似乎它們有這個問題...http://www.telerik.com/forums/visual-studio-2015-ctp6-does-not-generate-pdb-file - iCediCe
这真的很奇怪...你可以尝试打开一个生成pdb文件的csproj,然后只比较那个不生成pdb文件的csproj,在文本编辑器中进行比较,也许你能发现一些东西... - iCediCe
还有一种可能是创建一个新项目并导入所有代码,但这似乎有些hackish,甚至可能不起作用。 - iCediCe
谢谢 - 你关于Telerik的评论让我想到我们正在使用的可能会干扰这个过程的东西。 - dave clements

1
我需要手动在与我正在调试的构建配置匹配的PropertyGroup中添加<DebugType>pdbonly</DebugType>到*.csproj文件中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接