dotnet publish with/p: PublishProfile =?

Я пытаюсь называть "dotnet publish" с конкретным опубликованным профилем pubxml файла, как описано здесь:

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

Однако все, что я пытаюсь, похоже, приводит к поведению по умолчанию, а часть /p: PublishProfile игнорируется.

dotnet publish /p:PublishProfile="MyFolderProfile"

Не работает и не регистрирует ошибки, создавая по умолчанию местоположение в разделе "/obj".

Я отмечаю, что намеренно некорректная команда имеет тот же результат, например:

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

Что я делаю неправильно? - Любые указатели будут очень благодарны!

Ответы

Ответ 1

Вам может понадобиться полный путь, например

dotnet publish -c Release /p:PublishProfile=Properties\PublishProfiles\FolderProfile.pubxml

Ответ 2

Некоторое время назад я столкнулся с тем же вопросом. Мне удалось исправить это, вместо этого позвонив:

dotnet build [projectname] /p:PublishProfile=[PublishProfile]

Ответ 3

Я использовал это на событиях сборки VS

dotnet publish $(SolutionDir)DIRECTORI_1/PROJECT_1.csproj -c Release -o C:\Deployments\FOLDER_1

Ответ 4

Мой ответ опоздал. Мое решение имеет простое консольное приложение .NET Core ConsoleAppCore.csproj. Я использовал Visual Studio IDE для создания профиля публикации с именем FolderProfile.pubxml, а затем у меня сработали следующие команды:

Относительный путь - от корня решения

dotnet publish ConsoleAppCore\ConsoleAppCore.csproj /p:PublishProfile=ConsoleAppCore\Properties\PublishProfiles\FolderProfile.pubxml

Абсолютный путь - из любого места

dotnet publish "C:\work\ConsoleAppCore\ConsoleAppCore.csproj"   "/p:PublishProfile=C:\work\ConsoleAppCore\Properties\PublishProfiles\FolderProfile.pubxml"

В операционной системе Azure

Имя задачи =.NET Core

Версия задачи = 2

Command = публиковать

Путь к проектам = я оставил это пустым

Аргументы =

$(System.DefaultWorkingDirectory)\ConsoleAppCore\ConsoleAppCore.csproj /p:PublishProfile=$(System.DefaultWorkingDirectory)\ConsoleAppCore\Properties\PublishProfiles\FolderProfile.pubxml  --configuration $(BuildConfiguration) --output  $(Build.ArtifactStagingDirectory)\ConsoleAppCore-Publish\

В сценарии сборки Azure Dev Ops я перенаправил вывод в папку в $(Build.ArtifactStagingDirectory). У меня также есть задача Publish Artifact, настроенная для использования переменной промежуточного каталога.

Я использовал XML файл профиля публикации, потому что мне нужно, чтобы один файл управлял полным поведением в Azure Devops. Использование единого файла для всех параметров упрощает управление в Azure.

Оператор Azure Dev - Исследователь артефактов

Задача Publish Artifact создала для меня каплю, и вот так она выглядит. Обратите внимание, что имя файла в проводнике совпадает с именем, указанным вместе с опцией --output в задаче dotnet publish enter image description here