3 votes

Comment changer l'action de construction pour les fichiers en utilisant MSBuild ?

Nous utilisons NHibernate dans notre projet et nous avons besoin que tous les fichiers .hbm.xml soient des ressources intégrées. Pour automatiser cette tâche ennuyeuse, nous avons ajouté cette définition de cible à notre fichier de projet :

<Target Name="BeforeBuild">    
  <ItemGroup>
    <EmbeddedResource Include="**\*.hbm.xml" />
  </ItemGroup>
</Target>

Cela ne fonctionne que si tous les fichiers hbm.xml ont l'action de construction None. Mais dans notre projet, certains fichiers sont manuellement configurés en tant que ressource intégrée et il n'y a aucune chance de les changer tous pour le moment.

Nous obtenons donc l'erreur de construction "L'élément a été spécifié plus d'une fois dans le paramètre "Ressources" et les deux éléments avaient la même valeur pour la métadonnée "LogicalName". Les éléments en double ne sont pas pris en charge par le paramètre "Resources", sauf s'ils ont des valeurs différentes pour la métadonnée "LogicalName"."

Est-il possible d'écrire une cible qui change l'action de construction seulement pour les fichiers .hbm.xml avec l'action de construction None (ou NOT Embedded Resource) ?

3voto

Brian Kretzler Points 6012

Est-il possible de supprimer d'abord ceux qui sont déjà définis comme des ressources intégrées, avant de les ajouter tous ?

<ItemGroup>
  <EmbeddedResource Remove="**\*.hbm.xml" />
  <EmbeddedResource Include="**\*.hbm.xml" />
</ItemGroup>

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