Zapobieganie kopiowaniu plików PDB i XML do wyjścia

Mam projekt Visual Studio 2008 C#/. Net 3.5 z zadaniem post build do ZIP zawartość. Jednak stwierdzam, że otrzymuję również wymienione zespoły".pdb (debug) i .pliki XML (dokumentacja) w moim katalogu wyjściowym (i ZIP).

Na przykład, jeśli MyProject.csproj odwołuje się do Twojego zespołu.dll i tam są Twoje Assembly.xml i twój Assembly.pliki pdb w tym samym katalogu co DLL pojawią się w moim katalogu wyjściowym (i ZIP).

Mogę wykluczyć *.pdb kiedy ZIP ' In, ale nie mogę koc wykluczyć*.pliki xml, ponieważ mam pliki wdrożeniowe z tym samym rozszerzeniem.

Czy istnieje sposób, aby uniemożliwić projektowi kopiowanie odwołanych plików PDB i XML asemblera?

Author: SamB, 2010-01-06

6 answers

Chciałem mieć możliwość dodawania i usuwania odwołanych zestawów w mojej podstawowej aplikacji, unikając konieczności utrzymywania plików, które muszę usunąć lub wykluczyć.

Przeszukałem Microsoft.Common.targets szukając czegoś, co by zadziałało i znalazłem AllowedReferenceRelatedFileExtensions nieruchomość. Domyślnie jest to .pdb; .xml, więc wyraźnie zdefiniowałem go w moim pliku projektu. Haczyk polega na tym, że potrzebujesz czegoś (spacja nie jest wystarczająca), w przeciwnym razie nadal będzie używać domyślnej wartości.

<Project ...>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    ...
    <AllowedReferenceRelatedFileExtensions>
      <!-- Prevent default XML and PDB files copied to output in RELEASE. 
           Only *.allowedextension files will be included, which doesn't exist in my case.
       -->
      .allowedextension
    </AllowedReferenceRelatedFileExtensions> 
  </PropertyGroup>
 132
Author: Jason Morse,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-24 20:26:08

Możesz również określić to za pomocą wiersza poleceń:

MsBuild.exe build.file /p:AllowedReferenceRelatedFileExtensions=none
 55
Author: mwjackson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-29 09:22:26

Możesz dodać polecenie zdarzenia post Build podobne do del "$(TargetDir)YourAssembly*.xml", "$(TargetDir)YourAssembly*.pdb"

 16
Author: AndrewJacksonZA,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-13 09:37:01

Jest to dość stare pytanie, ale ponieważ nie ma odpowiedzi na temat tego, jak wyłączyć generowanie plików PDB i XML za pomocą interfejsu użytkownika, pomyślałem, że powinno to być tutaj dla kompletności.

W Visual Studio 2013: we właściwościach projektu, w zakładce kompilacji, odznacz "Generuj plik dokumentacji XML", a następnie kliknij "Zaawansowane opcje kompilacji" poniżej i zmień " Generuj informacje o debugowaniu "na" brak", i to wystarczy.

 4
Author: Dingo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-13 20:49:50

Po co w ogóle generować pliki .pdb i .xml, jeśli nie będziesz ich potrzebował? Możesz po prostu wyłączyć generowanie symboli debugowania i plików dokumentacji we właściwościach twojego projektuZbuduj (→ Advanced ... ). (Prawdopodobnie tylko do budowy Release.)

 0
Author: stakx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-14 16:35:04

Jeśli chcesz wykluczyć tylko pliki XML (np. wydanie debugowania), możesz zrobić coś takiego:

<AllowedReferenceRelatedFileExtensions>
  <!-- Prevent default XML from debug release  -->
      *.xml
 </AllowedReferenceRelatedFileExtensions>

Zasadniczo każde rozszerzenie (oddzielone średnikiem) zostanie wykluczone.

 -3
Author: ProVega,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-08 19:14:30