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

J’ai un projet Visual Studio 2010 qui fait référence à des composants tiers. Leurs assemblages sont accompagnés de fichiers de documentation XML, qui sont utiles pour nous (et pour nous seuls) développeurs. Et chaque fois que le projet est construit (soit 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 construction, que ce soit dans Visual Studio ou via MSBuild. Un script de post-construction peut être une option, mais une mauvaise odeur. Des idées? Je vous remercie.

Lorsque vous créez un projet, les fichiers .xml / .pdb sont rassemblés via la tâche ResolveAssemblyReference. Lorsque ResolveAssemblyReference est appelé, il reçoit une liste d’extensions de fichiers pour les fichiers associés. 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 voulez exclure tous les fichiers de référence associés, remplacez simplement la valeur de la propriété par quelque chose dont les fichiers associés n’auront pas d’extensions. Par exemple, vous pouvez définir AllowedReferenceRelatedFileExtensions sur “-“.

Vous pouvez également personnaliser la liste des fichiers renvoyés par celui-ci. Si vous souhaitez uniquement rechercher uniquement les fichiers .pdb, vous devrez passer à AllowedReferenceRelatedFileExtensions=".pdb" . Dans ce cas, toutes les références contenant 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 se terminent peut-être pas 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" le fichier .pdb et .foo seront tous deux copié dans le répertoire de sortie.

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

Il devrait changer

  

à

  

ou quelque chose comme ça.

Si les fichiers .xml / .pdb sont marqués comme “action-construction” (etc), vous pouvez les remplacer par “Aucun”. Vous devez également vous assurer qu’ils sont faux .

Est-ce que les deux sont réglés?

Quel est le problème lié à la copie des fichiers XML dans le dossier lors de la publication de la version? Il me semble que cela ne pose pas de problème et que le véritable problème réside dans le code qui récupère les fichiers pour les placer dans le programme d’installation. Ramasser des DLL tiers à partir de votre propre dossier bin \ release n’est pas une bonne pratique à mon avis. Je demanderais à mon installateur de récupérer les DLL de tiers dans leur propre dossier dans mon arbre source.

Le paramètre se trouve dans les propriétés du projet en question, sous l’onglet “Générer”, décochez la case “Fichier de documentation XML”. C’est également une propriété MSBuild appelée sous le applicable pour votre configuration de construction dans le fichier. * Proj.