2012-06-05 3 views
8

В настоящее время MSBuild не копирует файлы с расширением .manifest в мою папку с раскрывающимися списками. Я добавил команды для явной копии по файлу, но есть ли флаг конфигурации, который я могу установить, чтобы включить файлы манифеста?Как включить исключенные типы файлов в MSBuild

ответ

10

Свойство AllowedReferenceRelatedFileExtensions можно передать в вашу сборку. Значение свойства должно содержать список расширений файлов, разделенных запятой. От Microsoft.Common.targets:

<!-- 
These are the extensions that reference resolution will consider when looking for files related 
to resolved references. Add new extensions here if you want to add new file types to consider. 
--> 
<AllowedReferenceRelatedFileExtensions Condition=" '$(AllowedReferenceRelatedFileExtensions)' == '' "> 
    .pdb; 
    .xml 
</AllowedReferenceRelatedFileExtensions> 

Там нет никакого способа, чтобы добавить значения в список. Вы можете только предоставить весь список, поэтому убедитесь, что вы включили по умолчанию, например,

MSBuild.exe MyProject.csproj /t:build "/p:AllowedReferenceRelatedFileExtensions=.pdb;.xml;.manifest" 
+1

Я добавил AllowedReferenceRelatedFileExtensions элемент ребенка к элементу PropertyGroup на мой сценарий сборки, а также в файл .csproj и не видел файлы, которые копируются (у меня есть автоматическая сборка, работающая через TFS). Означает ли это, что файлы являются результатом проекта (т. Е. Папка bin)? Если да, то знаете ли вы, что мне нужно сделать, чтобы моя автоматическая сборка копировала файлы, не являющиеся выходами проекта? –

+0

@JM Да. MSBuild будет захватывать только файлы, которые находятся в каталоге вывода obj для вашего проекта. Если ваш .manifest-файл отсутствует в выходном каталоге, вам, вероятно, потребуется добавить цель post-build в ваш .csproj-файл. –

Смежные вопросы