ソリューションを構築する必要がありますが、1つのプロジェクトを除外します。どうすればいいですか?私はこの問題について多くを検索しましたが、何も解決できませんでした。
ItemGroupセクションは次の例外を発生させます:
無効な要素不明なタスクまたはデータ型。
PropertyGroupも例外を発生させます。
以下は私のコードサンプルです:
<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>
だから誰も私を助けることができますか?
Visual Studioで Configuration Manager Dialog を使用すると、特定の build configuration のソリューションレベルでプロジェクトを除外できます。
次に、使用するビルド構成を指定して、solutionファイルでmsbuild
を呼び出すだけです。
msbuild /property:Configuration=Release MySolution.sln
Enricoが提案するソリューションは、常に機能する最も用途の広いソリューションです。別の解決策は、<MSBuild>
タスクを直接使用することです。これは、特定のディレクトリにすべてのプロジェクトファイルがある場合、または構築するすべてのプロジェクトを簡単に列挙できる場合に役立ちます(つまり、ソリューション内のプロジェクトの数はそれほど多くありません)。
たとえば、このmsbuildファイルは、特定のプロジェクトを除き、現在のディレクトリの下にあるすべてのプロジェクトをビルドします。
<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>
その後、コマンドラインmsbuild <myproject> /t:BuildAllExceptWixProject
を使用してビルドできます
ソリューションファイル(.sln)で、Build.0エントリを削除します。例えば:
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
この「Build.0」エントリを削除すると、ソリューションに正常にロードされますが、GUIまたは外部MSBuildを介してビルドされません。