Как интегрировать публикацию exe со сборкой консоли VS2019. net приложение core 2.2?
Собственно , думаю, вам не нужно беспокоиться об этом.
dotnet publish
уже содержит процесс сборки. Процесс Publi sh сначала выполнит Build , а затем - publi sh. Одним словом, Build - это часть процесса Publi sh.
Итак, когда вы вводите dotnet publish
под Build , вы получите бесконечное l oop повторных попыток сборки.
Решение
----- Просто удалите событие после сборки в файле xxx.csproj
и просто dotnet publish
, и оно будет сначала запустите процесс сборки.
Вы можете протестировать в локальной VS, и когда вы щелкните правой кнопкой мыши свой проект -> Publi sh, он покажет шаг на выходе windwow.
Вдобавок , насколько мне известно, Azure DevOps имеет задачу под названием dotnet publish
, которая содержит сборку.
и , если вы хотите сделать какую-то настраиваемую цель msbuild только для шага publi sh, вы можете добавить условие, например Condition="'$(DeployOnBuild)'=='true'"
, оно будет выполняться для Publi sh процесс, а не обычный этап сборки (щелкните правой кнопкой мыши проект -> Сборка).
<Target Name="testone" Condition="'$(DeployOnBuild)'=='true'" AfterTargets="Build">
xxxxxxxxxxxxxx
</Target>
--------------- Обновление 1 ----------------
Первый вопрос
Собственно , сборка publi sh - это чистый процесс, а затем publi sh скопирует содержимое вывода сборки в publi sh fol дер. Таким образом, программа выполнения находится только в выходной папке сборки.
См. Журнал publi sh:

Таким образом, вы не должны указывать цель publi sh в процессе сборки . Это лишнее.
Второй вопрос
Чтобы сгенерировать эту программу для Window-10, linux или osx, вы можете попробовать эту командную строку для publi sh ваш проект: (Release - это стандартная конфигурация сборки выпуска)
Для Win-10:
dotnet publish -r win10-x64 -c Release --self-contained
Linux:
dotnet publish -r linux-x64 -c Release --self-contained
Для osx:
dotnet publish -r osx.10.12-x64 -c Release --self-contained
Таким образом проект сначала создается в соответствии с указанной средой выполнения, а затем публикуется.
Подробнее о. NET Core RID Catalog, вы можете обратиться к этому документу .
Обновление 2
I думаю, вам следует изменить конфигурацию в этом пользовательском интерфейсе пакета:


Затем нажмите Сохранить .
Кроме того, когда вы публикуете sh этот веб-проект, попробуйте удалить папку bin и obj, а затем опубликовать sh ее.
Отладка : bin\Debug\netcoreapp2.1\publish
Выпуск : bin\Release\netcoreapp2.1\publish
Или вы должны использовать команду do tnet как Я описал публике sh свой проект. Путь находится в папке Debug или Release.