Obecnie program MSBuild nie kopiuje plików z rozszerzeniem .manifest do folderu kompilacji. Dodałem polecenia do jawnego kopiowania pliku, ale czy istnieje flaga konfiguracji, którą mogę ustawić tak, aby pliki .manifest były dołączone?Jak uwzględnić wykluczone typy plików w MSBuild
8
A
Odpowiedz
10
Możesz przekazać właściwość AllowedReferenceRelatedFileExtensions
do swojej kompilacji. Wartość właściwości powinna być rozdzieloną średnikami listą rozszerzeń plików. Od 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>
Nie ma sposobu, aby dodać wartości do listy. Można jedynie dostarczyć całą listę, więc upewnij się, że zawierają domyślne np
MSBuild.exe MyProject.csproj /t:build "/p:AllowedReferenceRelatedFileExtensions=.pdb;.xml;.manifest"
dodałem AllowedReferenceRelatedFileExtensions elementem dziecka do elementu PropertyGroup do mojego skryptu build a także do pliku .csproj i nie widzi pliki, które są kopiowane (mam automatyczną kompilację uruchamianą przez TFS). Czy zakłada się, że pliki są danymi wyjściowymi projektu (np. Folderu bin)? Jeśli tak, czy wiesz, co powinienem zrobić, aby moja zautomatyzowana kompilacja skopiowała pliki, które nie są wyjściami projektu? –
@JM Tak. MSBuild pobierze tylko pliki znajdujące się w katalogu wyjściowym obj projektu. Jeśli plik .manifest nie znajduje się w katalogu wyjściowym, prawdopodobnie będziesz musiał dodać docelowy post-build do pliku .csproj. –