【发布时间】: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 构建定义。