Je dois créer une solution mais exclure un projet. Comment dois-je procéder? J'ai beaucoup cherché sur ce problème mais rien ne pouvait aider.
ItemGroup la section soulève l'exception suivante:
Élément non valide. Tâche ou type de données inconnu.
PropertyGroup soulève également l'exception.
Voici 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>
Alors, quelqu'un pourrait-il m'aider?
Vous pouvez exclure des projets au niveau de la solution pour une configuration de build spécifique en utilisant Dialogue Configuration Manager dans Visual Studio:
Ensuite, vous pouvez simplement appeler msbuild
sur le fichier de solution en spécifiant la configuration de construction à utiliser:
msbuild /property:Configuration=Release MySolution.sln
Une solution suggérée par Enrico est la solution la plus polyvalente qui fonctionnerait toujours. Une autre solution pourrait consister à utiliser <MSBuild>
tâche directement. Cela fonctionnera pour vous si vous avez tout votre fichier de projet dans un répertoire particulier, ou si vous êtes en mesure d'énumérer facilement tous les projets que vous souhaitez créer (c'est-à-dire que le nombre de projets dans votre solution n'est pas très grand).
Par exemple, ce fichier msbuild créera chaque projet sous votre répertoire actuel à l'exception d'un projet spécifique:
<Project xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MyProjectReferences Include="**\*.*proj" />
<MyProjectReferences Exclude="Utilities\DTS Indexing Service\Tdi.Origami.IndexUpdaterServiceSetup\Tdi.Origami.IndexUpdaterServiceSetup.wixproj" />
</ItemGroup>
<Target Name="BuildAllExceptWixProject">
<MSBuild Projects="@(MyProjectReferences)" Targets="Build" />
</Target>
</Project>
Ensuite, vous pouvez créer cela en utilisant la ligne de commande msbuild <myproject> /t:BuildAllExceptWixProject
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 créée, via l'interface graphique ou via MSBuild externe.