【问题标题】:How can I copy files in the middle of a build in Team System?如何在 Team System 的构建过程中复制文件?
【发布时间】:2010-12-15 04:10:24
【问题描述】:

我想在构建中包含两个解决方案。解决方案二需要解决方案一中的 dll 才能成功构建。解决方案二有一个 Binaries 文件夹,其中需要在构建解决方案二之前复制解决方案一中的 dll。

我一直在尝试 AfterBuild 目标,希望它会在第一个 SolutionToBuild 之后复制项目,但它不会触发。我猜它可能会在两种解决方案都编译后触发,但这不是我想要的。

<SolutionToBuild Include="$(BuildProjectFolderPath)/../../Main/Framework.sln">
  <Targets>AfterCompileFramework</Targets>
  <Properties></Properties>
</SolutionToBuild>
<SolutionToBuild Include="$(BuildProjectFolderPath)/../../../Dashboard/Main/Dashboard.sln">
  <Targets></Targets>
  <Properties></Properties>
</SolutionToBuild>

<ItemGroup>
  <FrameworkBinaries Include="$(DropLocation)\$(BuildNumber)\Release\Framework.*.dll"/>
</ItemGroup>
<Message Text="FrameworkBinaries: @(FrameworkBinaries)" Importance="high"/>

<Copy SourceFiles="@(FrameworkBinaries)" DestinationFolder="$(BuildProjectFolderPath)/../../../Dashboard/Main/Binaries"/>

【问题讨论】:

  • 您在哪里实施 AfterBuild(团队构建或项目构建文件)?

标签: tfs msbuild build-automation


【解决方案1】:

将两个解决方案中的项目合并为一个解决方案,然后添加对依赖项目的项目引用。现在会自动复制程序集。

解决方案的主要原因是管理项目之间的构建依赖关系。

当我不希望一个项目的开发影响另一个项目的开发时,我会使用两种解决方案。在这种情况下,我将手动复制解决方案一的输出,并根据需要将其作为解决方案二的依赖项签入。如果您希望一个的输出自动用作另一个的输入,那么最好使用单一解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 2014-06-15
    • 2018-08-23
    相关资源
    最近更新 更多