Question

J'ai un projet Visual Studio avec plusieurs étapes de construction personnalisée en elle, mais certains d'entre eux sont tout simplement avoir omis de courir. Il n'y a pas d'erreur et aucun avertissement, et selon la construction, ils journalise sont en cours d'exécution, mais ils ne sont certainement pas.

(Il était dans les versions de travail de Visual Studio avant 2010, mais il va mal dans Visual Studio 2010 et versions ultérieures.)

Était-ce utile?

La solution

La raison pour laquelle il est défaillant est qu'il ya autre étape de génération personnalisée dans le même projet qui appelle un fichier de commandes, comme ceci:

  

Ligne de commande: buildsomething.bat something.h
  Description: construire quelque chose
  Sorties: something.h

de Visual Studio 2010, toutes les commandes de construction personnalisées sont concaténer en un seul fichier batch, qui est ensuite exécuté. Lorsqu'un fichier batch exécute un autre fichier batch, Windows ne retourne pas le contrôle au premier fichier batch. Il est comme un goto, pas un appel de fonction. Donc, pour résoudre le problème, vous devez utiliser call comme ceci:

  

Ligne de commande: Appel buildsomething.bat something.h

call rend le flux de retour de commande au fichier de commandes de Visual Studio et permet donc vos autres étapes de construction personnalisée exécuter.

(je réponds à ma propre question afin que les chercheurs futurs peuvent trouver la réponse.)

Autres conseils

Assurez-vous que ci-dessous deux fichiers sont en bonne forme. Mieux comparer ces fichiers contre une installation VS travail.

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top