如何在发布模式下为.net托管项目生成PDB?

时间:2009-02-25 09:58:20

标签: .net msbuild debug-symbols release-mode

我知道通过为编译器提供/ debug参数,可以为.NET中的托管项目生成PDB。 有没有办法在VS(2005)GUI中指定它?

到目前为止,我能够在发布模式下生成PDB的唯一方法是手动修改.csproj文件并添加:

<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>

在“发布”设置下:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">

另一件事:我从MSDN here了解到DebugType标记的可能值为:

  • full
  • pdbonly
  • none

这些值如何影响编译器的行为?

3 个答案:

答案 0 :(得分:7)

在VS2008中,您可以使用项目属性->构建->高级... ->调试信息来设置属性。

答案 1 :(得分:6)

在调查中:

<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>

在RELEASE中:

<DebugSymbols>true</DebugSymbols>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>

答案 2 :(得分:5)

我发现this MONO request可能会对“full”与“pdbonly”之间的区别有所了解。

  

csc有一个“pdbonly”调试类型   生产时生成pdbs   运行时代码,即优化的,没有   调试器属性等。

     

这对于能够这很重要   从中获取有用的堆栈跟踪   发布质量代码。

在我看来,2个标签(DebugSymbols和DebugType)的存在是多余的。