I am trying to setup CI for a ASP.NET project. There is a publish profile defined in VS, which is working fine. (I can deploy the page to a remote IIS server.)
I want to automate this, using GitLab, so I am looking for a command line equivalent of the publish action of VS.
The publish profile files that VS is using can be found under Properties\PublishProfiles. I have 2 files here:
My attempts to deploy/publish on the command line:
dotnet publish /p:PublishProfile=myServer.pubxml
This results in the following error:
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]
Which is logical, as I have not defined the password.
I can set the password on the command line, like this:
dotnet publish /p:PublishProfile=myServer.pubxml /p:password=myPassword
And this works, but I want to avoid having the password written in plain text.
So how could I tell dotnet publish
to use the password from the myServer.pubxml.user file?
If anyone come across this: I solved this with a GitLab Secret, as follows:
dotnet publish -c Release -o Publish /p:PublishProfile=myServer.pubxml /p:password=$DEPLOY_PASSWD"