2009-10-30 149 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任务来构建它们。我已经指定了重建目标,以确保你获得一个干净的构建。

相关问题