我在Visual Studio Team Services中有一个构建定义,步骤如下:
- PowerShell(prebuild.ps1 powershell 脚本,用于设置 DNX
- NuGet 安装程序
- Visual Studio Build
- 复制和发布生成项目
Visual Studio Build 步骤中的 MSBuild 参数如下所示:
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true
/p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.stagingDirectory)"
复制和发布生成项目中的复制根目录设置为 $(build.stagingDirectory),内容设置为 ***.*,项目名称设置为删除。
构建成功,但当我查看工件时,它只是一个空的.zip。
查看"发布工件"步骤的日志,它说
2016-04-28T07:37:41.7047278Z Executing the powershell script: C:LRMMSServicesMmsTaskAgentProvisionerToolsagents1.98.1tasksCopyPublishBuildArtifacts1.0.22CopyPublishBuildArtifacts.ps1
2016-04-28T07:37:41.8467280Z Preparing artifact content in staging folder C:a1a...
2016-04-28T07:37:41.9187272Z Total files copied: 0.
2016-04-28T07:37:42.3778918Z Max Concurrent Uploads 2, Max Creators 1
2016-04-28T07:37:42.4218914Z Found 0 files to upload.
2016-04-28T07:37:42.4268927Z Created 0 files without uploading content. Total files processed 0
2016-04-28T07:37:42.4288961Z Uploaded artifact 'C:a1adrop' to container folder 'drop' of build 38.
2016-04-28T07:37:42.6274164Z Associated artifact 31 with build 38
为什么没有要上传的文件?我希望最终创建一个 Web 部署包,然后可以将其部署为 Azure Web 应用,但首先获取该包似乎不起作用。
编辑:当我使用相同的参数在本地运行 msbuild 时,我得到一个带有 bin 和 obj 子目录的工件目录,其中包含一堆 .nupkg 文件、一些 dll 和其他一些各种东西,而不是.zip文件。似乎我错过了一些东西,但我能找到的所有教程都告诉我使用这些 msbuild 参数。
根据您的描述,您正在构建一个 Asp.Net 核心项目。那么问题可能是由您使用的参数引起的。在"$(build.stagingDirectory)"文件夹中没有生成具有此参数的文件。尝试将参数设置为
"/t:Build,FileSystemPublish
/p:PublishConfiguration=$(BuildConfiguration)
/p:PublishOutputPathNoTrailingSlash=$(Build.SourcesDirectory)\{yourProjectName}\artifacts\bin\$(BuildConfiguration)\Publish"
,然后从中复制文件
"$(Build.SourcesDirectory)\{yourProjectName}\artifacts\bin\$(BuildConfiguration)\Publish".
有关详细信息,请参阅此链接:构建和部署 ASP.NET 5 应用程序