2009-10-30 105 views
4

由於this question似乎困惑/不知所以我會用我自己的一個部分形成的想法來重述它。解決方案構建後運行MsBuild任務(目標?)?

我能以某種方式設置一臺運行整體解決方案建立後一個批處理文件什麼的,這個批處理文件將調用的MSBuild建立一定的項目中具體的目標?爲了它的工作,我將不得不強制msbuild建立目標,而不考慮它是否認爲它是「最新的」,因爲這是我對衝的核心問題。

回答

3

既然你正在處理建築物的具體問題,你可能想用MSBuild文件替換你的批處理文件。例如:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

    <ItemGroup> 
    <SolutionsToBuild Include="MySolution.sln"/> 

    <Projects Include="Proj1.csproj"/> 
    <Projects Include="Proj2.csproj"/> 
    <Projects Include="Proj3.csproj"/> 
    </ItemGroup> 

    <Target Name="BuildAll"> 

    <!-- Just executes the DefaultTargets (Build) --> 
    <MSBuild Projects="@(SolutionsToBuild)"/> 

    <!-- Call Rebuild if you think its not building correctly --> 
    <MSBuild Projects="@(Projects)" 
      Targets="Rebuild"/> 

    </Target> 
</Project> 

然後你只需調用這個文件,msbuild.exe:

msbuild.exe Build.proj /t:BuildAll 

既然你說你想建立具體項目的解決方案建立只是把那些進入項目後, ItemGroup如圖所示,並在構建解決方案後使用MSBuild任務來構建它們。我已經指定了重建目標,以確保你獲得一個乾淨的構建。

相關問題