通过Azure Devops部署Nuget程序包时未添加依赖项

问题描述 投票:0回答:1

我已经创建了.net标准库。创建后,我尝试通过选择项目文件中存在的pack选项从Visual Studio创建nuget包。然后尝试在另一个控制台应用程序中使用本地创建的.nupkg文件,效果很好。它显示了预期的依赖性

enter image description here

然后,我通过创建管道通过Azure devops部署了相同的库。现在,在同一控制台应用程序中,如果我从Azure devops源中选择nuget,则它不会显示任何依赖性。控制台应用程序在安装后将无法运行,它要求再次在控制台应用程序中安装依赖项。

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>

我尝试按照建议的here在项目文件中添加以下内容,但没有帮助。

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

注意:我的项目中没有.nuspec文件

我在这里想念什么。

c# azure azure-devops nuget nuget-package
1个回答
0
投票

它可能更清楚(实际上是I just created a PR,但是在the docs on the Azure DevOps NuGet Task的YAML代码段中的注释末尾隐藏了,它说:

使用NuGet.exe并与.NET Framework应用程序一起使用。对于.NET Core和.NET Standard应用程序,请使用.NET Core任务。

看着nuget'exe pack docs,它说:

对于基于PackageReference的项目,请使用dotnet pack或msbuild -t:pack。

因此,基本上nuget'exe pack不支持PackageReference,并且所有.NET Core项目都是PackageReference。因此,不应使用Azure DevOps中的NuGet任务来打包PackageReference项目,而应使用.NET Core任务(使用dotnet cli)或带有nuget.exe pack参数的MSBuild。

© www.soinside.com 2019 - 2024. All rights reserved.