如何在Team System的构建过程中复制文件?

时间:2009-11-10 18:32:22

标签: tfs msbuild build-automation

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

我一直在尝试AfterBuild Target,希望它会在第一个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"/>

1 个答案:

答案 0 :(得分:0)

将两个解决方案中的项目合并为一个解决方案,然后为依赖项目添加项目引用。现在可以自动复制装配体。

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

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