Как предотвратить копирование файлов документации XML в режиме выпуска сборки? - PullRequest
80 голосов
/ 20 октября 2010

У меня есть проект Visual Studio 2010, который ссылается на некоторые сторонние компоненты. Их сборки сопровождаются файлами документации XML, которые полезны для нас (и только для нас) разработчиков. И всякий раз, когда проект создается (в режимах отладки или выпуска), эти XML-файлы копируются в каталог сборки.

Я не могу найти параметр или переключатель, чтобы отключить копирование этих файлов XML в каталог сборки, либо в Visual Studio, либо через MSBuild. Скрипт после сборки может быть вариантом, но вонючий. Есть идеи? Спасибо.

Ответы [ 5 ]

107 голосов
/ 17 августа 2012

При создании проекта файлы .xml / .pdb собираются с помощью задачи ResolveAssemblyReference. Когда вызывается ResolveAssemblyReference, ему передается список расширений файлов для связанных файлов. Этот список расширений файлов фиксируется в свойстве MSBuild AllowedReferenceRelatedFileExtensions . По умолчанию этот список будет содержать «.pdb; .xml».

Если вы хотите исключить все связанные ссылочные файлы из списка, просто замените значение свойства на то, что связанные файлы не будут иметь расширения. Например, вы можете установить AllowedReferenceRelatedFileExtensions в «-».

Вы также можете настроить список файлов, которые возвращаются этим. Если вы хотите найти только файлы .pdb, вам нужно будет ввести AllowedReferenceRelatedFileExtensions=".pdb". В этом случае любые ссылки, имеющие файл .pdb рядом с .dll / .exe, они также будут скопированы. Вы также можете использовать это для копирования других связанных файлов, которые могут не заканчиваться на .pdb / .xml. Например, если у вас есть ссылка на сборку MyAssembly.dll, и в этой же папке существуют MyAssembly.pdb и MyAssembly.foo. Если вы установите AllowedReferenceRelatedFileExtensions=".pdb;.foo", то и файл .pdb, и файл .foo будут скопированы в выходной каталог.

0 голосов
/ 12 мая 2011

Параметр находится в свойствах рассматриваемого проекта на вкладке «Сборка», снимите флажок «Файл документации XML».Это также свойство MSBuild с именем <DocumentationFile> в соответствии с применимым <PropertyGroup> для вашей конфигурации сборки в.

0 голосов
/ 20 октября 2010

В чем проблема с копированием файлов XML в папку в сборках выпуска? Мне кажется, что это нормально и что настоящая проблема заключается в коде, который подбирает файлы для помещения их в установщик. Собирать сторонние dll-файлы из собственной папки bin \ release, на мой взгляд, не очень хорошая практика. Я бы попросил моего установщика взять сторонние библиотеки из их собственной папки в дереве исходных текстов.

0 голосов
/ 10 мая 2011

Файл проекта Visual Studio имеет тот же формат, что и любой файл msbuild.Таким образом, вы можете вручную добавить условие в соответствующий раздел, чтобы не копировать ваши XML-файлы, если имя конфигурации равно «Release».

Оно должно измениться

<ItemGroup>

на

<ItemGroup Condition="'$(CONFIG)'=='RELEASE'">

или что-то в этом роде.

0 голосов
/ 20 октября 2010

Если .xml / .pdb помечены как build-action «Содержимое» (и т. Д.), Вы можете изменить их на «Нет».Вы также должны убедиться, что они копируют в файл сборки false .

Установлены ли оба параметра?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...