Question

J'ai un fichier XML source utilisé pour créer des fichiers C # qui sont ensuite compilés dans le cadre d'un projet.
Actuellement, j'ai une cible BeforeBuild qui exécute mon convertisseur XML vers C #.
Le problème est qu’au moment où l’étape BeforeBuild est exécutée, les anciens fichiers semblent avoir été stockés par le système de génération, de sorte que les nouveaux fichiers sont ignorés.

Comment puis-je contourner cela? Il semble que les transformations seraient la solution, mais elles sont limitées dans ce qu’elles peuvent faire.

Était-ce utile?

La solution

Je suppose que votre " stocké par le système de compilation " peut être traduit en tant que ItemGroup contenant les fichiers .cs que vous souhaitez compiler est généré lors de la lecture du fichier msbuild, par opposition à l'exécution de votre cible de compilation. Vous avez plusieurs options:

  1. <CreateItem> voir Tâche CreateItem
  2. <Output> voir Élément de sortie

J'espère que cela vous aidera.

Autres conseils

Eh bien, nous avons quelque chose de similaire-ish ici. Nous générons un fichier .cs d'un fichier XML à l'aide d'un fichier .tt. Les deux fichiers font partie d'un csproj spécifique. Propriétés en cours - & Gt; BuildEvents sur csproj donne ce petit extrait de code dans la ligne de commande de l'événement de pré-génération:

del "$(ProjectDir)MyCsFile.cs"
copy /b /y "$(ProjectDir)\MyXmlFile.xml" "$(TargetDir)"
"$(ProjectDir)tt.bat" "$(ProjectDir)MyTemplateFile.tt"

Je ne sais pas si cela vous sera utile, j'espère que cela suffira comme solution de rechange.

Je pense que vous devez nous montrer un peu votre fichier de règles / génération. Vous devriez avoir une règle / dépendance pour le fichier cs qui a le xml comme dépendance.

Je ne suis pas sûr de comprendre ce que vous entendez par & "; est stocké par le système de construction &";

.

Vérifiez soigneusement vos règles pour détecter les erreurs / omissions.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top