web-dev-qa-db-fra.com

Comment empêcher la copie des fichiers de documentation XML dans une version en mode édition?

J'ai un projet Visual Studio 2010 qui fait référence à certains composants tiers. Leurs assemblages sont accompagnés de fichiers de documentation XML, qui sont utiles pour nous (et seulement pour nous) les développeurs. Et chaque fois que le projet est construit (en mode Debug ou Release), ces fichiers XML sont copiés dans le répertoire de construction.

Je n'arrive pas à trouver un paramètre ou un commutateur pour désactiver la copie de ces fichiers XML dans le répertoire de génération, soit dans Visual Studio, soit via MSBuild. Un script post-build peut être une option, mais malodorante. Des idées? Je vous remercie.

80
Humberto

Lorsque vous générez un projet, les fichiers .xml/.pdb sont rassemblés via la tâche ResolveAssemblyReference. Lorsque ResolveAssemblyReference est appelé, une liste d'extensions de fichiers pour les fichiers associés est transmise. Cette liste d'extensions de fichiers est capturée dans la propriété MSBuild AllowedReferenceRelatedFileExtensions. Par défaut, cette liste contiendra ".pdb; .xml".

Si vous souhaitez exclure tous les fichiers de référence associés d'être récupérés, remplacez simplement la valeur de la propriété par quelque chose dont les fichiers associés n'auront pas d'extension. Par exemple, vous pouvez définir AllowedReferenceRelatedFileExtensions sur "-".

Vous pouvez également personnaliser la liste des fichiers qui sont retournés par cela. Si vous ne souhaitez rechercher que des fichiers .pdb, vous devrez saisir AllowedReferenceRelatedFileExtensions=".pdb". Dans ce cas, toutes les références qui ont un fichier .pdb à côté du fichier .dll/.exe seront également copiées. Vous pouvez également l'utiliser pour copier d'autres fichiers associés qui ne peuvent pas se terminer par .pdb/.xml. Par exemple, si vous avez un assembly référencé nommé, MyAssembly.dll et dans ce même dossier, il existe MyAssembly.pdb et MyAssembly.foo Si vous définissez AllowedReferenceRelatedFileExtensions=".pdb;.foo", les fichiers .pdb et .foo seront copiés dans le répertoire de sortie.

108

Le fichier de projet Visual Studio a le même format que n'importe quel fichier msbuild. Vous pouvez donc ajouter manuellement la condition dans la section correspondante pour ne pas copier vos fichiers xml si le nom de la configuration est "Release".

Ça devrait changer

<ItemGroup>

à

<ItemGroup Condition="'$(CONFIG)'=='RELEASE'">

ou quelque chose comme ça.

0
Alex