Mam projekt Visual Studio 2008 C # / .NET 3.5 z zadaniem po kompilacji, aby spakować zawartość. Jednak stwierdzam, że otrzymuję również pliki pdb (debugowanie) i .xml (dokumentacja), do których istnieją odwołania, w moim katalogu wyjściowym (i ZIP).
Na przykład, jeśli MyProject.csproj odwołuje się do YourAssembly.dll i istnieją pliki YourAssembly.xml i YourAssembly.pdb w tym samym katalogu co biblioteka DLL, pojawią się one w moim katalogu wyjściowym (i ZIP).
Mogę wykluczyć * .pdb podczas archiwizacji, ale nie mogę wykluczyć plików * .xml, ponieważ mam pliki wdrożeniowe o tym samym rozszerzeniu.
Czy istnieje sposób, aby uniemożliwić projektowi kopiowanie plików PDB i XML do zestawów, do których istnieją odwołania?
źródło
Chciałem mieć możliwość dodawania i usuwania zestawów, do których istnieją odwołania, w mojej aplikacji podstawowej, unikając konieczności utrzymywania plików, które muszę usunąć lub wykluczyć.
Przekopałem się,
Microsoft.Common.targets
szukając czegoś, co działałoby i znalazłemAllowedReferenceRelatedFileExtensions
nieruchomość. Domyślnie jest.pdb; .xml
tak, więc jawnie zdefiniowałem go w pliku projektu. Haczyk polega na tym, że potrzebujesz czegoś (białe znaki nie są wystarczające), w przeciwnym razie nadal będzie używać wartości domyślnej.źródło
Możesz dodać polecenie zdarzenia po kompilacji podobne do
del "$(TargetDir)YourAssembly*.xml", "$(TargetDir)YourAssembly*.pdb"
źródło
To dość stare pytanie, ale ponieważ nie ma odpowiedzi na temat tego, jak wyłączyć generowanie plików PDB i XML za pośrednictwem interfejsu użytkownika, doszedłem do wniosku, że powinno to być tutaj dla kompletności.
W programie Visual Studio 2013: we właściwościach projektu, na karcie kompiluj, odznacz „Generuj plik dokumentacji XML”, a następnie kliknij „Zaawansowane opcje kompilacji” poniżej i zmień „Generuj informacje debugowania” na „Brak”, a to załatwi sprawę.
źródło
pdb
ixml
pliki.Moja odpowiedź może być teraz banalna, ale chciałbym udostępnić skrypt BAT, którego używam do usuwania plików xml, jeśli jest dla niego odpowiednia biblioteka dll. Jest to przydatne, jeśli chcesz tylko wyczyścić folder wyjściowy i masz inne pliki xml, których nie chcesz usuwać.
Stosowanie:
Zajęło mi godzinę, aby ukończyć tę prostą pracę (dzięki "opóźnionej ekspansji") z wszelkiego rodzaju poszukiwaniami tu i tam. Mam nadzieję, że pomoże to innym nowicjuszom BAT, takim jak ja.
źródło
Nie miałem szczęścia z innymi odpowiedziami, w końcu zorientowałem się, jak to zrobić w mojej implementacji, używając wbudowanego polecenia „Usuń” , najwyraźniej jest określony sposób, w jaki musisz zaimplementować symbole wieloznaczne , jest nieco zniuansowany , oto wszystko, co musisz umieścić w swoim „CSPROJ” ( TargetDir to zmienna wbudowana, dołączana automatycznie) pod tagiem „Projekt”:
Miałem również problemy z generowaniem różnych folderów specyficznych dla języka, jeśli masz ten problem, możesz również usunąć nieużywane foldery specyficzne dla języka. Zdecydowałem się wywołać to tylko dla typu kompilacji „Wydanie”:
źródło
Jeśli chcesz tylko wykluczyć pliki XML (na przykład wydanie debugowania), możesz zrobić coś takiego:
Zasadniczo każde wymienione rozszerzenie (oddzielone średnikiem) będzie wykluczone.
źródło