MSBuild中是否有一种方法可以编译指定父项下的文件夹,子文件夹和sub ...中的所有解决方案?
我们的图书馆提供了许多示例程序。我想添加到构建过程中,我们知道它们都可以编译。
答案 0 :(得分:2)
您可以为targets
和restore
操作创建自己的build
。例如:
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" InitialTargets="EntryRestore" DefaultTargets="EntryMSBuild">
<ItemGroup>
<SolutionFile Include="./**/*.sln"/>
</ItemGroup>
<Target Name="EntryRestore">
<Message Text="-----Entry-----" Importance="high"/>
<Message Text=" Restore " Importance="high"/>
<Message Text="-----Entry-----" Importance="high"/>
<MSBuild Projects="%(SolutionFile.Identity)" Targets="restore"/>
</Target>
<Target Name="EntryMSBuild">
<Message Text="-----Entry-----" Importance="high" />
<Message Text=" Build " Importance="high" />
<Message Text="-----Entry-----" Importance="high" />
<MSBuild Projects="%(SolutionFile.Identity)" Targets="build" />
</Target>
</Project>
项目SolutionFile
将包含位于当前目录及其子目录中的所有.sln
文件的路径。您也可以在CLI
中定义路径并执行相对路径搜索。
<ItemGroup>
<SolutionFile Include="$(MyDir)/**/*.sln"/>
</ItemGroup>
MSBuild
任务启动MSBuild
以执行指定的目标。在我们的cas中,它们是restore
和build
。该任务使用了“ batching
”,它允许按元数据遍历项目。
&"D:\Visual Studio\MSBuild\15.0\Bin\msbuild.exe" .\Make.targets
MSBuild targets | Item element | Item metadata in task batching | MSBuild task