2012-06-05 16 views
8

Attualmente MSBuild non copia sui file con estensione .manifest nella mia cartella di rilascio build. Ho aggiunto comandi per copiare esplicitamente sul file, ma c'è un flag di configurazione che posso impostare in modo che i file .manifest siano inclusi?Come includere i tipi di file esclusi in MSBuild

risposta

10

È possibile passare la proprietà AllowedReferenceRelatedFileExtensions alla build. Il valore della proprietà dovrebbe essere un elenco separato da punti e virgola di estensioni di file. Da 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> 

Non v'è alcun modo per aggiungere valori all'elenco. È possibile fornire solo l'intera lista, quindi assicuratevi di includere le impostazioni predefinite, ad esempio,

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

ho aggiunto AllowedReferenceRelatedFileExtensions elemento a un bambino di un elemento PropertyGroup al mio script di build e anche per il file .csproj e non vedere i file vengono copiati (ho una build automatizzata che attraversa TFS). Questo presuppone che i file siano l'output di un progetto (cioè la cartella bin)? In tal caso, sai cosa avrei bisogno di fare per far sì che la mia build automatizzata copi i file che non sono output di un progetto? –

+0

@ JM Sì. MSBuild prenderà solo i file che si trovano nella directory di output obj per il tuo progetto. Se il tuo file .manifest non si trova nella directory di output, probabilmente dovrai aggiungere un target post-build al tuo file .csproj. –

Problemi correlati