Моя единственная проблема в том, что он дает несколько файлов .nupkg вместо одного и что пакеты веб-API не имеют зависимостей dll.
I Предположим, у вас есть несколько проектов в одном решении. Давайте назовем проект Web Api A , другие проекты B , C и D ...
1. Так что, если вы хотите упаковать A в пакет nuget, вместо использования projects: '**/*.csproj'
, мы можем использовать что-то вроде projects: '**/A.csproj'
. Тогда он больше не будет упаковывать несколько пакетов nuget.
2. Для зависимостей dll, я думаю, вы имеете в виду ссылки на проекты, такие как Jo sh Gust , упомянутые выше. Для этого это все еще одна открытая проблема о команде dotnet pack
. Вы можете отследить эту проблему, чтобы получать уведомления об обновлениях.
Сейчас нам нужно внести изменения в A.csproj
, чтобы использовать магию msbuild в качестве обходного пути. Вы можете попробовать Мартина или Звиря обходные пути там. На мой взгляд, они оба помогают в вашей проблеме.
Надеюсь, все вышеперечисленное поможет:)
Update1:
Для редактирования, если вы хотите перевести его в конвейер AZ, вы можете использовать custom
команда для вызова пакета. Примерно так:
- task: DotNetCoreCLI@2
displayName: 'dotnet custom'
inputs:
command: custom
projects: '**/ProjectName.csproj'
custom: pack
arguments: '-p:NuspecFile=~/projects/app1/project.nuspec -p:NuspecBasePath=~/projects/app1/nuget'
Вы можете проверить журнал, чтобы убедиться, что он действительно выполнил команду: "C:\Program Files\dotnet\dotnet.exe" pack D:\a\1\s\xxx\xxx.csproj -p:NuspecFile=~/projects/app1/project.nuspec -p:NuspecBasePath=~/projects/app1/nuget
. Надеюсь, это то, что вам нужно.
И я не уверен, что мы можем использовать ~
в этой команде, но если она работает локально, вы можете перевести ее в Azure Devops Pipeline, используя мой способ ...