VSTS构建以空构建工件结束

时间:2018-01-03 11:05:13

标签: asp.net msbuild azure-devops azure-pipelines

我们正在使用ASP.Net模板构建VSTS。我们将MSBuild参数传递如下 -

  

/ P:DeployOnBuild =真   / P:WebPublishMethod =封装   / P:PackageAsSingleFile =真   / P:SkipInvalidConfigurations =真   / P:PackageLocation =" $(build.artifactstagingdirectory)\"

我们看不到构建错误。从日志中我们观察到一条线 -

  

C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_compiler.exe -v / LRM -p .. \ LRM \ -u -f -d PrecompiledWeb \ LRM \

其中LRM是我们正在构建的.NET sln名称。这个sln包含多个项目以及LRM网站。

在构建管道的末尾,我们看不到生成的工件。我们在" Publish Build Artifacts"说 -

  

2018-01-03T06:07:47.9208838Z ## [警告]目录' D:\ VSTS代理商\ DEV-QAS \ A1 \ 66 \ a'是空的。什么都不会被添加到构建工件' drop'。

4 个答案:

答案 0 :(得分:3)

使用以下作为msbuild参数(/p:OutDir="$(build.stagingDirectory)“是差异)

/p:TransformConfigFiles=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:OutDir="$(build.stagingDirectory)"

如果您只想要网站输出,请使用发布任务路径发布为“$(build.stagingDirectory)\ _ PublishedMbsites”。如果staging目录中的所有文件都需要使用“$(build.stagingDirectory)”作为发布路径

enter image description here

答案 1 :(得分:0)

我不知道原因,但也许这套替代的MSDeploy目标MSBuild参数将被证明是一种解决方法。

/p:SkipInvalidConfigurations=true /p:DeployTarget=Package /p:PackageTempRootDir="$(Build.ArtifactStagingDirectory)"

答案 2 :(得分:0)

这是网站,因此您无法将其作为Web应用程序发布。

首先,由于 ChamindaC 表示您可以指定 OutDir 参数,但它不会生成Web部署包,您可以将文件夹存档到zip存档任务。 (注意:值应为/p:OutDir="$(build.stagingDirectory)\\"

其次,一旦创建发布配置文件(右键单击网站>发布Web应用程序),它就可以生成 publishproj 文件。因此,您可以使用MSBuild Arguments在 Visual Studio Build MSBuild 任务中指定该文件,以将网站发布到Web部署包。

答案 3 :(得分:0)

enter image description here

ASP.Net Web API MSBuild参数: / p:OutDir = $(Build.ArtifactStagingDirectory)/ p:SkipInvalidConfigurations = true

发布构建工件: 发布路径: $(Build.ArtifactStagingDirectory)_PublishedWebsites

上面的配置对我有用,请检查图像以获取详细信息。

相关问题