VSTS构建以空的构建产物结束。

5
我们正在使用ASP.Net模板的VSTS构建。我们将MSBuild参数传递如下 -
/p:DeployOnBuild = true /p:WebPublishMethod = Package /p:PackageAsSingleFile = true /p:SkipInvalidConfigurations = true /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网站。
在构建管道的末尾,我们没有看到任何生成的工件。我们在“发布构建工件”处看到一个警告 -
2018-01-03T06:07:47.9208838Z ## [warning]目录“D:\ VSTS Agents \ DEV-QAS \ A1 \ 66 \ a”为空。不会添加任何内容到构建工件“drop”。
4个回答

4

请使用以下内容作为msbuild参数(/p:OutDir="$(build.stagingDirectory)"是不同之处)

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

如果您只想要网站输出,可以使用发布任务路径作为"$(build.stagingDirectory)\_PublishedWebsites"进行发布。如果需要暂存目录中的所有文件,请使用"$(build.stagingDirectory)"作为发布路径。

enter image description here


0

enter image description here

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

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

以上配置对我有效,请查看详细信息的图片。


0

这是一个网站,所以你不能将其发布为Web应用程序。

首先,正如ChamindaC所说,您可以指定OutDir参数,但它不会生成Web部署包,您可以通过Archive任务将文件夹归档为zip文件。(注意:值应为/p:OutDir="$(build.stagingDirectory)\\")

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


请问在考虑到您的第一点和第二点时,针对这种情况总的MSbuild参数应该是什么? - Dimitry Khan
第一种方法是:/p:DeployOnBuild=true /p:SkipInvalidConfigurations=true /p:OutDir="$(build.stagingDirectory)\\"。对于第二种方法,您可以像您所说的那样使用原始参数。 - starian chen-MSFT
我正在使用以下MSBuild参数,但没有成功...... /p:DeployOnBuild = true /p:WebPublishMethod = Package /p:PackageAsSingleFile = true /p:SkipInvalidConfigurations = true /p:OutDir =“ $(build.stagingDirectory)\”..... 在构建时出现以下错误........Error ASPCONFIG:使用注册为allowDefinition ='MachineToApplication'的部分超出应用程序级别是错误的。这个错误可能是由于在IIS中未将虚拟目录配置为应用程序引起的。 - Dimitry Khan
你能否在一个新项目中重现这个问题?如果可以的话,你可以在OneDrive上分享样例项目。 - starian chen-MSFT
感谢@starian chen-MSFT的评论。 我们需要创建一个单独的示例项目来共享。这需要一些时间。 然而,我们观察到问题出现在编译项目时。可能没有(或者被跳过)编译,因此产生了空的输出结果。现在,我们已将源.cs文件添加到发布的输出结果中,并且暂时解决了问题。 - Dimitry Khan
显示剩余2条评论

0

我不知道原因,但也许这组替代的MSBuild参数针对MSDeploy会证明是一个解决方法。

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

尝试使用该配置。但是在 ..\a 目录下仍然是空目录。 - Dimitry Khan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接