dotnet publish with /p:PublishProfile=?

前端 未结 6 2031
离开以前
离开以前 2020-12-29 03:53

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/

相关标签:
6条回答
  • 2020-12-29 04:08

    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

    0 讨论(0)
  • 2020-12-29 04:08

    See https://github.com/dotnet/docs/issues/19677. The PublishProfile is only the name, any directory before it is disregarded.

    PublishProfile property is treated as a file name and the directory is constructed separately.

    The PublishProfileFullPath property should be used if specifying a custom path.

    0 讨论(0)
  • 2020-12-29 04:17

    You might need the full path, e.g.

    dotnet publish -c Release /p:PublishProfile=Properties\PublishProfiles\FolderProfile.pubxml
    
    0 讨论(0)
  • 2020-12-29 04:26

    I ran into the same issue a while ago. I managed to fix it by instead calling:

    dotnet build [projectname] /p:PublishProfile=[PublishProfile]
    
    0 讨论(0)
  • 2020-12-29 04:33

    I used this on VS build events

    dotnet publish $(SolutionDir)DIRECTORI_1/PROJECT_1.csproj -c Release -o C:\Deployments\FOLDER_1
    
    0 讨论(0)
  • 2020-12-29 04:33

    Try this based on: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/visual-studio-publish-profiles?view=aspnetcore-3.1#publish-profiles

    dotnet build ..\project\project.csproj /p:DeployOnBuild=true -c Release /p:PublishProfile="Folder Staging"
    

    I included a relative csproj path and a publish profile name with a space in it to clarify how to deal with those cases. The -c flag is optionally used to specify the configuration to use.

    0 讨论(0)
提交回复
热议问题