Команда dotnet publish
, опубликованная в папке проектов bin/netcoreapp2.2/Debug/publish
. Где netcoreapp2.2
предположительно изменяется в зависимости от версии dotnet, а Debug
изменяется в зависимости от конфигурации, указанной в параметре -c
.
Для целей CI / CD это явно нежелательно. В качестве альтернативы можно передать -o
, чтобы передать явный выходной путь, но, опять же, в среде CI / CI этот путь должен находиться внутри структуры папок проекта, например, что-то вроде:
dotnet publish -o publish
Но поскольку команда publish объединяет все файлы, она берет предыдущие попытки публикации и рекурсивно сохраняет их. Этого можно избежать, либо явно очистив папку публикации, и / или добавив a в csproj для проекта, но теперь существует зависимость между сценарием сборки и csproj: если путь публикации изменяется в сценариях сборки по какой-либо причине без соответствующего обновления csproj вещи ломаются.
Таким образом, наименее хрупким вариантом, по-видимому, является использование пути вывода по умолчанию, так как он автоматически исключается из глобализации, но как удалить чувствительность к версии и конфигурации? Есть ли особенно безопасный способ заставить dotnet сообщить моей среде CI / CD, каков выходной путь для сборки / публикации?