使用发布配置文件部署到 Azure:使用 Jenkins 时在 VS2017 上发布失败时工作

Deploy to Azure using publish profile : Works when publishing on VS2017 fails when using Jenkins

我从我的应用服务下载了发布配置文件并在我的 WebApi 上创建了一个配置文件。

当我使用 VS 2017 执行 "publishing" 时,它工作正常。 如果失败,当我尝试在 Jenkins 上执行部署命令时。我收到的错误消息是:

我在 Jenkins 上使用了 PowerShell 命令行,例如:

msbuild My.WebApi /P:AllowUntrustedCertificate=true /P:DeployOnBuild=True /p:PublishProfile=$myPublishProfile
  1. 构建没有错误
  2. $myPublishProfile 是有效路径
  3. 这个 Jenkins 实例在服务器上运行,而不是在我的机器上。
  4. Jenkins 有自己的 SMC 用户和服务器授权用户。
  5. 应用服务已将 WEBSITE_WEBDEPLOY_USE_SCM 设置为 False
  6. 我正在使用相同的发布配置文件在 Jenkins 和 Visual Studio 上构建。

如果两者都使用相同的发布配置文件,为什么我会收到身份验证错误?

为了从 Jenkins 执行 Deploy,我应该做任何其他配置吗?

当您使用 visualstudio 发布时,密码存储在磁盘上的加密文件中。如果您需要使用 msbuild-command 发布,您可以在命令行或 publishprofile

中添加凭据

在命令行附加这些属性:

msbuild ... /p:UserName=XXX /p:PassWord=YYY

或包含在个人资料中

<UserName>XXX</UserName>
<Password>YYY</Password>