如何在 dotnet 发布期间使用 pubxml.user 中的密码

How to use the password in pubxml.user during dotnet publish

我正在尝试为 ASP.NET 项目设置 CI。 VS 中定义了一个发布配置文件,它工作正常。 (我可以将页面部署到远程 IIS 服务器。)

我想使用 GitLab 自动执行此操作,因此我正在寻找与 VS 的发布操作等效的命令行。

VS 使用的发布配置文件可以在 Properties\PublishProfiles 下找到。我这里有 2 个文件:

我在命令行上 deploy/publish 的尝试:

dotnet publish /p:PublishProfile=myServer.pubxml

这会导致以下错误:

MSDEPLOY : error Code: ERROR_USER_UNAUTHORIZED [C:\Users\myUser\source\repos\Beam Time Request\BeantimeRequest\BeantimeRequest.csproj] Error : The remote server returned an error : (401) Unauthorized. [C:\Users\myUser\source\repos\Beam Time Request\BeantimeRequest\BeantimeRequest.csproj] MSDEPLOY : error count: 1. [C:\Users\myUser\source\repos\Beam Time Request\BeantimeRequest\BeantimeRequest.csproj]

这是合乎逻辑的,因为我还没有定义密码。

我可以在命令行设置密码,像这样:

dotnet publish /p:PublishProfile=myServer.pubxml /p:password=myPassword

这是可行的,但我想避免以纯文本形式写入密码。

那么我如何告诉 dotnet publish 使用 myServer.pubxml.user 文件中的密码?

如果有人遇到这个: 我用 GitLab Secret 解决了这个问题,如下:

  1. 为存储库定义了一个新的 GitLab Secret,名为 DEPLOY_PASSWD
  2. 使用以下命令进行部署: dotnet publish -c Release -o Publish /p:PublishProfile=myServer.pubxml /p:password=$DEPLOY_PASSWD"