2010-07-26 13 views
0

A a trouvé un article (Extend the Visual Studio Build Process) expliquant comment remplacer les cibles de construction dans un fichier projet C#. J'ai testé cela, et cela semble bien fonctionner. Cependant, ce que je veux vraiment faire est de remplacer une cible de construction dans un projet C++ (avec Visual Studio 2005). Le problème est que les projets C++ utilisent un XML différent. Au lieu d'avoir <project> comme racine, les projets C++ ont la racine <VisualStudioProject>. Quand j'ajoute la balise <target> à un C++ fichier de projet et essayez d'ouvrir le projet dans Visual Studio, je reçois cette erreur:Étendre le processus de construction Visual Studio C++

The following error has occurred during XML parsing:

File: [Path to Project File].vcproj Line: 304 Column: 30 Error Message: Element 'Target' is unexpected according to content model of parent element 'VisualStudioProject'.

The file '[Path to Project File].vcproj' has failed to load.

Comment puis-je remplacer une cible de construction Visual Studio pour un projet C++? Ou existe-t-il un meilleur moyen de personnaliser ce qui se passe lors d'une construction C++?

Répondre

1

Dans Visual Studio 2005, il n'y a pas de "cibles" de construction pour les générations C++ car le système de construction C++ n'utilise pas MSBuild.

Cependant, VC++ 2005 définit la pré-construction, Pre-Link, Post- Créer des événements, ainsi que la possibilité d'ajouter une génération personnalisée pour les fichiers étape non standard.

Vous pouvez obtenir ce que vous voulez en utilisant ces paramètres.

Note:

  • VC++ 2005 projets peuvent être construits en utilisant MSBuild, il est tout simplement pas ce que Visual Studio ne hors de la boîte.
  • Visual Studio 2010 utilise MSBuild pour tous les types de projet.
+0

Malheureusement, je veux modifier la construction "Clean". Je ne pense pas que je puisse réaliser ce que je veux faire avec Pre-Build, Pre-Link et Post-Build, car ceux-ci fonctionnent tout le temps pour toutes les builds. À moins qu'il existe un moyen de définir des étapes de construction conditionnelles en fonction du type de construction, il semble que je puisse être bloqué. – Brian