【发布时间】:2019-01-27 18:30:35
【问题描述】:
我们有两个网络项目的解决方案:
解决方案 ->
- 项目 1
- 项目 2
我们在 VSTS 中有一个 CI,用于构建和创建包(工件 zip 文件)。
当我们在解决方案中添加第二个项目时,工件只有一个项目。检查 VSTS 中的日志,我们看到了以下几行:
2018-08-21T13:27:55.6971077Z CleanWebsitesPackageCore:
2018-08-21T13:27:55.6971269Z Deleting file "D:\a\1\a\20180821.17.zip".
2018-08-21T13:27:55.6997562Z CleanWebsitesPackage:
2018-08-21T13:27:55.6997903Z Deleting file "D:\a\1\a\20180821.17.SourceManifest.xml".
2018-08-21T13:27:55.7002478Z Deleting file "D:\a\1\a\20180821.17.deploy.cmd".
2018-08-21T13:27:55.7006495Z Deleting file "D:\a\1\a\20180821.17.deploy-readme.txt".
2018-08-21T13:27:55.7009652Z Deleting file "D:\a\1\a\20180821.17.SetParameters.xml".
2018-08-21T13:27:55.7022918Z ValidateGlobalPackageSetting:
2018-08-21T13:27:55.7023199Z $(PackageAsSingleFile) is true
2018-08-21T13:27:55.7023978Z $(PackageFileName) is D:\a\1\a\20180821.17.zip. Validating...
2018-08-21T13:27:55.7028185Z CollectFilesFromIntermediateAssembly:
似乎 VSTS 在完成第一个项目后,删除 zip 文件并开始下一个。
我找到了定义目标项目名称(定义-t)的解决方法:
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\$(Build.BuildNumber).zip" /p:DeployIisAppPath="Web Site" /p:ProductsToRelease="Frontend" /t:Frontend\Frontend
如果我在我的计算机上执行 msbuild,zip 文件中有两个项目,但在 VSTS 中不起作用。
是否有任何配置可以避免删除目标(CleanWebsitesPackageCore)?
【问题讨论】:
-
如果您使用两个 MSBuild 任务而不是一个 VS Build 任务来分别构建两个项目怎么办?并为这两个MSBuild任务指定不同的
/p:DesktopBuildPackageLocation,比如一个为/p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\app1,另一个为/p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\app2。 -
实际上,我们使用的解决方法是分别构建两个项目,但我们正在构建多次,例如:集成测试,项目1,项目2。我们在项目1和项目之间有一些共享代码项目2.在我们一步构建之前(运行测试并在构建步骤之后创建工件)。
标签: msbuild azure-devops