民间,
我正在使用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吗?
感谢。
答案 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。