Как создать PDB для проектов, управляемых.net, в режиме выпуска?

Я знаю, что 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 ответа

Решение

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

В DEBUG:

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

В РЕЛИЗЕ:

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

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

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

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

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

Другие вопросы по тегам