我需要將一堆步驟連接在一起,這些步驟包括使用自定義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