Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
468 views
in Technique[技术] by (71.8m points)

c# - dotnet publish with /p:PublishProfile=?

I'm trying to call "dotnet publish" with a specific publish profile pubxml file as documented here :

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/visual-studio-publish-profiles?view=aspnetcore-2.1&tabs=aspnetcore2x

However, everything I try seems to result in the default behaviour, and the /p:PublishProfile part is ignored.

dotnet publish /p:PublishProfile="MyFolderProfile"

Doesn't work, and logs no error, building to the default location under "/obj".

I do note that an intentionally incorrect command has the same result though, eg:

dotnet publish /p:PublishProfile="MyFolderProfile-XXXXX"

What am I doing wrong? - Any pointers would be greatly appreciated!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

My response is late. My solution has a simple .NET Core console application ConsoleAppCore.csproj. I used Visual Studio IDE to generate a publish profile with the name FolderProfile.pubxml and then the following commands worked for me:

Relative path - From the solution root

dotnet publish ConsoleAppCoreConsoleAppCore.csproj /p:PublishProfile=ConsoleAppCorePropertiesPublishProfilesFolderProfile.pubxml

Absolute path - From any location

dotnet publish "C:workConsoleAppCoreConsoleAppCore.csproj"   "/p:PublishProfile=C:workConsoleAppCorePropertiesPublishProfilesFolderProfile.pubxml"

On Azure dev ops

Task name=.NET Core

Task version=2

Command=publish

Path to projects=I left this empty

Arguments=

$(System.DefaultWorkingDirectory)ConsoleAppCoreConsoleAppCore.csproj /p:PublishProfile=$(System.DefaultWorkingDirectory)ConsoleAppCorePropertiesPublishProfilesFolderProfile.pubxml  --configuration $(BuildConfiguration) --output  $(Build.ArtifactStagingDirectory)ConsoleAppCore-Publish

In the Azure Dev Ops build pipeline scenario, I have redirected the output to a folder under $(Build.ArtifactStagingDirectory) . I also have a Publish Artifact task which is configured to use the staging directory variable.

I have made use of the publish profile XML file because I wanted a single file to govern the complete behavior while on Azure Devops. Relying on a single file for all parameters simplifies management on Azure.

Azure Dev ops - Artifacts Explorer

The Publish Artifact task created a drop for me and this is how it looks. Please notice that the file name in the explorer tallies with the name specified along with the --output option in the dotnet publish task enter image description here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...