我需要将一堆步骤连接在一起,这些步骤包括使用自定义MSBuild文件构建解决方案,项目和运行.cmd文件。排序在自定义MSBuild文件中执行的项目/解决方案构建和cmd文件
我在这第一关低于:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>AnyCPU</Platform>
</PropertyGroup>
<ItemGroup>
<ProjectsToBuild Include="..\Hosts\solution1.sln"></ProjectsToBuild>
<ProjectsToBuild Include="..\..\solution2.sln"></ProjectsToBuild>
<ProjectsToBuild Include="helper1.csproj"></ProjectsToBuild>
<ProjectsToBuild Include="..\..\Sandboxes\helper2.sln"></ProjectsToBuild>
<Exec Include="" Command="CALL GetFiles.cmd"/>
<ProjectsToBuild Include="wix\proc\prod.wixproj"></ProjectsToBuild>
<Exec Command="CALL final.cmd"/>
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(ProjectsToBuild)" Targets="Build">
<Output ItemName="ProjectOutputs" TaskParameter="TargetOutputs"/>
</MSBuild>
<Message Text="@ProjectOutputs"/>
</Target>
</Project>
这导致了一个错误,因为Exec的元素是放错了地方。
基本上,我需要建立solution1.sln,solution2.sln,helper1.csproj和helper2.sln(按顺序),然后运行该文件GetFiles.cmd,然后构建prod.wixproj其次是在运行了最后。 cmd文件。
我已经看过MSDN(here,here,here),a blog,并通过各种计算器的问题(包括this,this,this,this)浏览,但他们没有相当的地址是什么,我试图做的。这是我第一次使用MSBuild,所以有可能我错过了一些东西。将欣赏任何指针...
您可以使用目标来控制构建解决方案的顺序。 http://msdn.microsoft.com/en-us/library/vstudio/ee216359.aspx – Nicodemeus 2013-05-14 01:18:51
@NickCarlson谢谢。但是,我如何链接ItemGroup到Target? – Manas 2013-05-14 01:36:08
ItemGroup也可以是Target的子节点。每个目标都可以拥有它自己负责的项目组。您可以在 级别指定构建顺序,也可以通过 级别上的各个*目标属性指定构建顺序。 (下) –
Nicodemeus
2013-05-14 01:38:46