Предотвращение копирования файлов PDB и XML ссылочной сборки в выходные данные

У меня есть проект Visual Studio 2008 C# / .NET 3.5 с задачей post build для ZIP содержимого. Однако я нахожу, что я также получаю ссылочные сборки".pdb (debug) and .xml (документация) файлы в моем выходном каталоге (и ZIP).

например, если MyProject.csproj ссылается на вашу сборку.dll и есть ваша сборка.xml и YourAssembly.pdb-файлы в том же каталоге, что и DLL, они будут отображаться в моем выходном каталоге (и ZIP).

Я могу исключать.* pdb при ZIP, но я не могу одеяло исключить *.xml-файлы, поскольку у меня есть файлы развертывания с тем же расширением.

есть ли способ предотвратить копирование проекта ссылочной сборки PDB и XML-файлов?

6 ответов


Я хотел иметь возможность добавлять и удалять ссылочные сборки в моем основном приложении, избегая необходимости поддерживать файлы, которые мне нужно удалить или исключить.

я перерыла Microsoft.Common.targets ищет что-то, что будет работать и нашел AllowedReferenceRelatedFileExtensions собственность. Значение по умолчанию .pdb; .xml поэтому я явно определил его в моем файле проекта. Подвох в том, что вам нужно что-то (пробелов недостаточно) в противном случае он все равно будет использовать по умолчанию.

<Project ...>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    ...
    <AllowedReferenceRelatedFileExtensions>
      <!-- Prevent default XML and PDB files copied to output in RELEASE. 
           Only *.allowedextension files will be included, which doesn't exist in my case.
       -->
      .allowedextension
    </AllowedReferenceRelatedFileExtensions> 
  </PropertyGroup>

вы также можете указать это через командную строку:

MsBuild.exe build.file /p:AllowedReferenceRelatedFileExtensions=none

вы можете добавить команду события Post Build, аналогичную del "$(TargetDir)YourAssembly*.xml", "$(TargetDir)YourAssembly*.pdb"


Это довольно старый вопрос, но поскольку нет ответа о том, как отключить генерацию PDB и XML-файлов через UI, я решил, что он должен быть здесь для полноты.

в Visual Studio 2013: в свойствах проекта на вкладке компиляция снимите флажок "создать файл документации XML", затем нажмите" Дополнительные параметры компиляции "ниже и измените" создать отладочную информацию "на" нет", и это сделает трюк.


зачем создавать .pdb и .xml файлы вообще, если они вам не понадобятся? Вы можете просто отключить символы отладки и генерацию файлов документации всвойствапостроить (→ дополнительно...). (Вероятно, только для Release построить.)


Если вы хотите исключить только XML-файлы (например, отладочный выпуск) , вы можете сделать что-то вроде этого:

<AllowedReferenceRelatedFileExtensions>
  <!-- Prevent default XML from debug release  -->
      *.xml
 </AllowedReferenceRelatedFileExtensions>

в принципе, каждое расширение (разделенное точкой с запятой) будет исключено.