139 votes

Empêcher la copie de fichiers PDB et XML d'assembly référencés vers la sortie

J'ai un Visual Studio 2008, C#/.NET 3.5 projet avec un post-construction tâche de compresser le contenu. Cependant, je suis la recherche que je suis également obtenir les assemblys référencés' .pdb (debug) et .xml (documentation) des fichiers dans mon répertoire de sortie (et ZIP).

Par exemple, si MyProject.csproj références YourAssembly.dll et il y a YourAssembly.xml et YourAssembly.pdb fichiers dans le même répertoire que la DLL, ils apparaîtront dans mon répertoire de sortie (et ZIP).

Je ne peux exclure *.apb quand ZIP avec, mais je ne peut pas exclure la couverture *.les fichiers xml que j'ai de déploiement de fichiers avec la même extension.

Est-il possible d'empêcher le projet à partir de la copie de l'assembly référencé APB et des fichiers XML?

174voto

Jason Morse Points 2149

Je voulais être en mesure d'ajouter et de supprimer des assemblys référencés dans mon application principale, tout en évitant la nécessité de maintenir les fichiers que je nécessaire à supprimer ou à exclure.

J'ai creusé par Microsoft.Common.targets la recherche de quelque chose qui serait à l'œuvre et a trouvé l' AllowedReferenceRelatedFileExtensions de la propriété. La valeur par défaut est .pdb; .xml j'ai donc défini de façon explicite dans mon fichier de projet. Le hic, c'est que vous avez besoin de quelque chose (espace n'est pas suffisant) sinon, il va utiliser la valeur par défaut.

<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>

74voto

mwjackson Points 1677

Vous pouvez également spécifier ceci via la ligne de commande:

MsBuild.exe build.file / p: AllowedReferenceRelatedFileExtensions = aucun

23voto

AndrewJacksonZA Points 452

Vous pouvez ajouter une commande d'événement Post Build similaire à del "$(TargetDir)YourAssembly*.xml", "$(TargetDir)YourAssembly*.pdb"

-4voto

ProVega Points 1425

Si vous souhaitez uniquement exclure les fichiers XML (par exemple, une version de débogage), vous pouvez procéder de la manière suivante:

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

Fondamentalement, chaque extension (délimitée par un point-virgule) répertoriée sera exclue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X