57 votes

Comment puis-je exclure un projet d'une version dans MSBuild ?

Je dois créer une solution, mais exclure un projet. Comment dois-je le faire?

J'ai beaucoup cherché sur ce problème, mais rien n'a pu aider.

Une section ItemGroup génère l'exception suivante :

Élément invalide. Tâche ou type de données inconnu.

PropertyGroup soulève également l'exception.

Ci-dessous mon exemple de code :

 <project name="TI 8.1.6 build script">
  <ItemGroup>
    <Solution Include="${ROOT}\Core\TI Core.sln" Exclude="${ROOT}\Utilities\DTS Indexing Service\Tdi.Origami.IndexUpdaterServiceSetup\Tdi.Origami.IndexUpdaterServiceSetup.wixproj"/>
  </ItemGroup>
...
</project>

Comment puis-je faire ceci?

14voto

BmanMA Points 131

Dans votre fichier de solution (.sln), supprimez les entrées Build.0. Par exemple:

 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MyProject", "MyProject.vcxproj", "{2281D9E7-5261-433D-BB04-176A61500CA3}"
EndProject

GlobalSection(ProjectConfigurationPlatforms) = postSolution
    {2281D9E7-5261-433D-BB04-176A61500CA3}.Debug|x86.Build.0 = Debug|x64

Si vous supprimez cette entrée "Build.0", elle se chargera correctement dans la solution, mais ne sera pas générée, que ce soit via l'interface graphique ou via MSBuild externe.

-2voto

créez un fichier master.proj :

dans un autre ItemGroup, ajoutez les propriétés DefaultExclude pour les programmes - placez-les devant la solution -- BA était canadien
Configuration=Libération Sortie déposez le master.proj dans le répertoire avec les programmes et msbuild le master.proj compile tout sauf... que HelloWorld

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