Зависимости не добавляются при развертывании пакета Nuget через Azure Devops - PullRequest
0 голосов
/ 06 марта 2020

Я создал. net Стандартная библиотека. После создания я попытался создать пакет nuget из моей визуальной студии, выбрав опцию пакета в файле проекта. Затем попытался использовать локально созданный файл .nupkg в другом консольном приложении, он работал нормально. Он показывает зависимости, как и ожидалось

enter image description here

Затем я развернул ту же библиотеку через Azure devops, создав конвейер. Теперь в том же консольном приложении, если я выберу nuget из моего источника Azure devops, он не показывает никакой зависимости. Консольное приложение не будет работать после установки, оно просит снова установить зависимости в консольном приложении.

enter image description here

Вот мой файл проекта.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <Company>MyCompany</Company>
    <Authors>Me</Authors>
    <Version>1.0.0</Version>
    <Description>Library for managing Azure KeyVault</Description>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.KeyVault" Version="3.0.5" />
    <PackageReference Include="Microsoft.IdentityModel.Clients.ActiveDirectory" Version="5.2.7" />
  </ItemGroup>

</Project>

Я попытался добавить ниже в файл проекта, как предложено здесь , но без помощи.

<PackageReference Include="NuGet.Build.Tasks.Pack" Version="5.4.0">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>

Примечание: в файле .nuspec нет мой проект

Что мне здесь не хватает.

1 Ответ

0 голосов
/ 10 марта 2020

Это может быть яснее (на самом деле, я только что создал PR для этого), но скрыто в конце комментария во фрагменте YAML для документов на Azure Задача DevOps NuGet гласит:

Использует NuGet.exe и работает с приложениями. NET Framework. Для. NET Core и. NET Стандартных приложений используйте. NET Основная задача.

Глядя на nuget'exe pack документы , он говорит:

Используйте do tnet pack или msbuild -t: pack для проектов на основе PackageReference.

Таким образом, в основном nuget.exe pack не поддерживает PackageReference и все. NET Основные проекты - PackageReference. Таким образом, вы не должны использовать задачу NuGet в Azure DevOps для упаковки проектов PackageReference, либо используйте задачу. NET Core (которая использует do tnet cli), либо MSBuild с аргументом -t:pack.

...