Как создать PDB для проектов, управляемых .net, в режиме выпуска? - PullRequest
8 голосов
/ 25 февраля 2009

Я знаю, что PDB создаются для управляемых проектов в .NET, давая компилятору аргумент / debug. Есть ли способ указать это в графическом интерфейсе VS (2005)?

Единственный способ, которым я мог заставить его генерировать PDB в режиме выпуска, - это вручную изменить файл .csproj и добавить:

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

в настройках «релиз»:

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

Еще одна вещь: я узнал из MSDN здесь , что возможные значения для тега DebugType:

  • full
  • pdbonly
  • none

Как эти значения влияют на поведение компилятора?

Ответы [ 3 ]

7 голосов
/ 25 февраля 2009

В VS2008 вы можете установить свойство, используя свойства проекта -> Build -> Advanced ... -> Отладочная информация.

6 голосов
/ 03 апреля 2009

В отладке:

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

В РЕЛИЗЕ:

<DebugSymbols>true</DebugSymbols>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
5 голосов
/ 25 февраля 2009

Я нашел этот запрос MONO , который может пролить некоторый свет на разницу между 'full' и 'pdbonly'.

csc имеет отладочный тип "pdbonly", который генерирует pdbs, производя исполняемый код, т.е. оптимизированный, нет атрибуты отладчика и т. д.

Это важно для возможности получить полезные следы стека от код качества выпуска.

Мне кажется, что наличие двух тегов (DebugSymbols и DebugType) является избыточным.

...