【问题标题】:MSBuild: Do I need Target Rebuild?MSBuild:我需要目标重建吗?
【发布时间】:2023-03-03 10:28:01
【问题描述】:

我使用构建文件来构建和测试我的项目。 我有一个 Compile-Target,其中包含这一行 "Targets = "Rebuild"。我真的需要这一行吗?使用 Visual Studio 我知道我可以清理解决方案并重新构建它,或者我可以重新构建解决方案。 在我的 msbuild 文件中,我在再次创建他之前删除我的主文件夹 BuildArtifacts。我用了这个Tutorial,我不知道他为什么用Target=Rebuild? 这是我的构建文件:

<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>

【问题讨论】:

    标签: unit-testing build msbuild msbuild-4.0


    【解决方案1】:

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

    【讨论】:

    • 哦,好的,谢谢!所以如果我想清理和重建它,我应该使用“Targets="Rebuild""?
    • 是的,它将为解决方案中的所有项目调用 Clean 和 Build 目标,例如stackoverflow.com/questions/3095901/…
    猜你喜欢
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    相关资源
    最近更新 更多