VSTS如何使用多项目解决方案创建打包文件(zip)

时间:2018-08-21 14:23:45

标签: msbuild azure-devops

我们有两个Web项目的解决方案:

解决方案->
  -专案1
  -项目2

我们在VSTS中具有一个CI,用于构建和创建程序包(人工压缩文件)。

当我们在解决方案中添加第二个项目时,工件只有一个项目。在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)?

1 个答案:

答案 0 :(得分:1)

在我的.sln中,我有4个csproj,应该添加到webapp.zip中。

在其中两个项目中,这导致CleanWebsitesPackageCore被调用,从而导致您遇到相同的问题。

我通过将以下空目标添加到两个有问题的csproj文件的底部来“修复”,该文件覆盖了正常的清理功能:

 <Target Name="CleanWebsitesPackageCore"/>
  <Target Name="CleanWebsitesPackage"/>