MSBuild:我需要目标重建吗?



我使用构建文件来构建和测试我的项目。我有一个编译目标,其中有这一行"目标="重建"。我真的需要这条线吗?使用Visual Studio,我知道我可以清理解决方案并重新构建它,或者我可以重新构建解决方案。在我的msbuild-file中,我删除我的主文件夹BuildArtifacts,然后再创建他。我使用了这个教程,我不知道他为什么使用目标=重建?这是我的构建文件:

<Project ToolsVersion="4.0" DefaultTargets="RunUnitTests" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
  <!-- Falls Eigenschaften nicht gesetzt -> Release & Any CPU als default-->
  <PropertyGroup>
    <!-- ... -->
  </PropertyGroup>
  <ItemGroup>
    <!-- ... -->
  </ItemGroup>
  <!-- All the stuff go into my main folder -->
  <Target Name="Init" DependsOnTargets="Clean">
    <MakeDir Directories="@(BuildArtifacts)" />
  </Target>
  <!-- delete my main folder -->
  <Target Name="Clean">
    <RemoveDir Directories="@(BuildArtifactsDir)" />
  </Target>
  <!-- delete NUnit-Files -->
  <Target Name="CleanAfter">
    <RemoveDir Directories="@(NunitDir)" />
  </Target>
  <Target Name="Compile" DependsOnTargets="Init">
    <MSBuild Projects="@(SolutionFile)" 
    Targets="Rebuild" 
    Properties="OutDir=%(BuildArtifactsDir.FullPath);
    Configuration=$(Configuration);
    Platform=$(BuildPlatform)" />
  </Target>
  <Target Name="RunUnitTests" DependsOnTargets="Compile">
         <Exec Command='"@(NUnitConsole)" "@(UnitTestsDLL)" --result=console-test.xml --work=BuildArtifacts' />
         <CallTarget Targets="CleanAfter" />
  </Target>
</Project>

这取决于您自己的需求:您是否需要重新构建整个解决方案?可以说,在构建服务器上,您希望在每次提交之后进行完全的清理/重建,以确保代码库是正常的。仅删除输出目录(我假设这就是Clean目标所做的)并不一定也删除所有目标文件,因为它们通常会进入中间目录,该目录可能与输出目录不同。

最新更新