Я пытаюсь реплицировать следующий конвейер Azure, используя команду CLI do tnet:
1. zipAfterPublish
- это одна опция, доступная * только 1006 * в Dotnet Publish
задании. Если вы проверите журнал задачи do tnet publi sh, вы обнаружите, что она не передает никакое свойство, например zipAfterPublish
, в команду:
Так как только свойство msbuild может быть передано таким образом: /p:xxx=xxx
. zipAfterPublish
не будет работать в командной строке, так как это не свойство msbuild, эта опция не поддерживается в dotnet cli
, доступна только в Azure Devops Dotnet Publish task
.
2. Обычно, если мы хотим опубликовать sh one. net основной веб-проект и заархивируйте его после публикации sh, используя do tnet cli локально, мы можем использовать команду вроде:
dotnet publish xx.csproj /nologo /p:PublishProfile=xxx /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /maxcpucount:1 /p:platform=xxx /p:configuration=xxx /p:DesktopBuildPackageLocation=SomePath\xxx.zip
или
dotnet build xxx.sln /nologo /p:PublishProfile=Release /p:PackageLocation="C:\Some\Path\package" /p:OutDir="C:\Some\Path\out" /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /maxcpucount:1 /p:platform="Any CPU" /p:configuration="Release" /p:DesktopBuildPackageLocation="C:\Some\Path\package\package.zip"
Это описано в этой проблеме .
Выше указанные команды могут работать в windows для создания папки xx.zip.
Однако:
Похоже, что вы находитесь в linux среде, пожалуйста, проверьте этот документ . Если вы хотите сжать папку publi sh (сгенерировать пакет), dotnet build/publish
вызовет msdeploy.exe
, чтобы выполнить эту работу, но, поскольку MSDeploy не поддерживает кроссплатформенную поддержку, поддерживаются только следующие опции MSDeploy на Windows. Поэтому команда tnet cli не поддерживается для генерации zip после публикации sh в linux среде ... То, что вы хотите, пока не поддерживается в Linux.
Возможное решение :
Поскольку мы можем использовать dotnet publish
для публикации sh проекта в одной папке ( Папка работает кроссплатформенно ), мы можем вызвать другую команду zip после dotnet publish
Застегнуть это сами.
Надеюсь, мой ответ поможет решить вашу загадку:)