8

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

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

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

在“发布”设置下:

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

另一件事:我从 MSDN hereDebugType了解到,该标签的可能值是:

  • full
  • pdbonly
  • none

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

4

3 回答 3

7

在 VS2008 中,您可以使用项目属性->Build ->Advanced... ->Debug Info 来设置属性。

于 2009-02-25T10:03:12.123 回答
7

在调试中:

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

在发布中:

<DebugSymbols>true</DebugSymbols>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
于 2009-04-03T16:35:31.930 回答
5

我发现这个 MONO 请求可能会阐明 ' full' 和 ' pdbonly' 之间的区别。

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

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

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

于 2009-02-25T10:01:04.017 回答