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!
Description. dotnet publish compiles the application, reads through its dependencies specified in the project file, and publishes the resulting set of files to a directory. The output includes the following assets: Intermediate Language (IL) code in an assembly with a dll extension.
pubxml file contains settings that apply to one publish profile. The values you enter in the Publish Web wizard are stored in these files. Creating a .wpp.targets File. When you want to configure settings that apply to all profiles you use in a project, you create a . wpp.
On the Target tab of the Publish page, select Folder, and then select Next. On the Specific Target tab of the Publish page, select Folder, and then select Next. On the Location tab of the Publish page, select Finish. On the Publish tab of the Publish window, select Publish.
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 ConsoleAppCore\ConsoleAppCore.csproj /p:PublishProfile=ConsoleAppCore\Properties\PublishProfiles\FolderProfile.pubxml
Absolute path - From any location
dotnet publish "C:\work\ConsoleAppCore\ConsoleAppCore.csproj" "/p:PublishProfile=C:\work\ConsoleAppCore\Properties\PublishProfiles\FolderProfile.pubxml"
On Azure dev ops
Task name=.NET Core
Task version=2
Command=publish
Path to projects=I left this empty
Arguments=
$(System.DefaultWorkingDirectory)\ConsoleAppCore\ConsoleAppCore.csproj /p:PublishProfile=$(System.DefaultWorkingDirectory)\ConsoleAppCore\Properties\PublishProfiles\FolderProfile.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
I ran into the same issue a while ago. I managed to fix it by instead calling:
dotnet build [projectname] /p:PublishProfile=[PublishProfile]
You might need the full path, e.g.
dotnet publish -c Release /p:PublishProfile=Properties\PublishProfiles\FolderProfile.pubxml
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With