由于这个问题似乎让人困惑或者感到不足,因此我将用自己的一部分想法重新表述它。
我是否可以设置一个批处理文件或其他东西,在整个解决方案构建完成后运行,并且该批处理文件将调用msbuild来构建某个项目内特定的目标?为了使其正常工作,我必须以某种方式强制msbuild构建目标,而不考虑它是否认为它“已经是最新的”,因为这是我遇到的核心问题。
由于这个问题似乎让人困惑或者感到不足,因此我将用自己的一部分想法重新表述它。
我是否可以设置一个批处理文件或其他东西,在整个解决方案构建完成后运行,并且该批处理文件将调用msbuild来构建某个项目内特定的目标?为了使其正常工作,我必须以某种方式强制msbuild构建目标,而不考虑它是否认为它“已经是最新的”,因为这是我遇到的核心问题。
由于您正在处理建筑物,因此您可能希望使用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 Build.proj /t:BuildAll
既然您说想在解决方案构建完成后构建特定项目,只需按照下面的示例将它们放入Projects ItemGroup中,并使用MSBuild任务在解决方案构建完成后进行构建。我已经指定了Rebuild目标,以确保您获得干净的构建。