【问题标题】:How to pass MSBuild arguments for mutliple projects in TFS Build definition如何在 TFS 构建定义中为多个项目传递 MSBuild 参数
【发布时间】:2017-08-21 18:42:00
【问题描述】:

我正在尝试为 TFS 构建定义中的两个项目传递不同的 MSBuild 参数。

我正在构建一个包含两个项目的单一解决方案。我能够在不指定项目的情况下传递 MSBuild 参数并且它正在工作。这两个项目都在正确构建。现在,我想将 MSBuild 参数分别传递给两个项目,因为两个项目的参数值不同。我无法做到这一点。

如果我传递如下 MSBuild 参数,这两个项目都通用,那么两个项目都可以正常构建。

/p:DeployOnBuild=true /P:PackageTempRootDir=\Release /p:DeployIisAppPath="默认网站 站点";DefaultPackageFileName=API.zip /p:OutputPath="$(Build.BinariesDirectory)\$(BuildPlatform)\$(BuildConfiguration)"

如果我为两个项目分别传递 MSBuild 参数,

/t:Project1 /p:DeployOnBuild=true /P:PackageTempRootDir=\Release /p:DeployIisAppPath="Default Web 站点";DefaultPackageFileName=API.zip /p:OutputPath="$(Build.BinariesDirectory)\$(BuildPlatform)\$(BuildConfiguration)" /t:Project2 /p:DeployOnBuild=true /P:PackageTempRootDir=\Release /p:DeployIisAppPath="默认网站 站点";DefaultPackageFileName=WEB.zip /p:OutputPath="$(Build.BinariesDirectory)\$(BuildPlatform)\$(BuildConfiguration)"

我只是根据项目寻找包名称的更改,如您在上面看到的。对于 project1 我想要 API.zip,对于 project2 我想要 WEB.zip。我尝试了几种不同的方式通过它,它没有用。

通过上面的 agruments,我得到了具有相同包名的两个项目的输出,它是 WEB.zip。我不知道为什么。它正在构建两个项目,但名称相同。

我发现了类似的问题specify project file of a solution using msbuild,但它没有指定如何将单独的 MSBuild agruments 传递给多个项目。

【问题讨论】:

  • 如果您没有找到解决方案,我想解决方法是单独构建两个项目?
  • 您使用的是哪个版本? XAML(2010 及更高版本)或 vNext(2015 及更高版本)?
  • vNext 构建定义。

标签: tfs msbuild


【解决方案1】:

由于您使用的是 vNext 构建,您可以通过添加多个 VS 构建任务来分别构建两个项目。

有关更多详细信息,您可以查看以下两个问题:

【讨论】:

  • 是的,这是最好的解决方案。谢谢
猜你喜欢
  • 2019-08-02
  • 2013-03-16
  • 1970-01-01
  • 2017-07-20
  • 2011-09-26
  • 2017-11-30
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多