在TFS 2018中的Visual Studio生成任务期间指定DesktopPackageLocation中的项目名称

时间:2018-05-03 01:35:19

标签: tfs msbuild

民间,

我正在使用TFS 2018中的Visual Studio Build任务来构建多个.NET Core 2.0 Web应用程序。

解决方案参数是: ** \ Web应用程序。*。SLN

每个解决方案都适用于WebApp.Prj1.sln,WebApp.Prj2.sln等。

MSBuild参数是: / p:DeployOnBuild = true / p:WebPublishMethod = Package / p:PackageAsSingleFile = false / p:SkipInvalidConfigurations = true / p:DesktopBuildPackageLocation =“$(build.artifactstagingdirectory)\ WebApp.zip”

我想要的是创建特定于我正在构建的解决方案的webapp.zip文件。换句话说,像: / P:DesktopBuildPackageLocation = “$(build.artifactstagingdirectory)\ $(build.projectname)的.zip”

我似乎无法找到允许我访问构建的解决方案或项目名称的内置变量。

这可能吗?如果没有,有人可以发布模拟Visual Studio Build任务的等效powershell脚本,以便我可以手动创建带有项目名称的zipfile吗?

感谢。

2 个答案:

答案 0 :(得分:0)

使用多个Visual Studio Build任务,每个解决方案一个。

答案 1 :(得分:0)

默认情况下不支持,也没有内置变量。

如果要自定义VS build任务的powershell脚本。 您可以在构建代理计算机上的构建代理工作目录_work / vstsbuildxxtask文件夹下找到VSBuild.ps1脚本。

看一下这个主题:Visual Studio Build step should allow multiple paths

另一种方法是使用多个Visual Studio Build任务与Copy and Publish Build Artifacts结合使用,以处理每个项目的多个$(build.artifactstagingdirectory)\$(build.projectname).zip包。

<强>更新

此处已存在相关的uservoice:Using Variable in Solution Path in a Visual Studio Build Task

对于您的请求,作为一种变通方法,您可以将整个解决方案路径应用为构建变量,并在构建时更改它。这意味着定义一个变量并设置值&#34; $ / repository / Development / Prj1 / website name.sln&#34;。如果要构建Prj2,请在队列构建时将Prj1更改为Prj2。