通过Azure DevOps部署Nuget包时未添加依赖项

Dependencies not getting added when Nuget package deployed through Azure Devops(通过Azure DevOps部署Nuget包时未添加依赖项)

本文介绍了通过Azure DevOps部署Nuget包时未添加依赖项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经创建了.NET标准库。创建后,我尝试通过选择项目文件中存在的Pack选项从我的Visual Studio创建Nuget包。 然后尝试在另一个控制台应用程序中使用本地创建的.nupkg文件,运行正常。其显示的依赖关系与预期一致

然后,我通过创建管道,通过Azure Devop部署了相同的Libray。现在,在同一个控制台应用程序中,如果我从我的Azure DEVOPS源代码中选择Nuget,它不会显示任何依赖关系。 控制台应用在安装后无法工作,它要求在控制台应用中再次安装依赖项。

这是我的项目文件。

<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文件

我在这里错过了什么。

推荐答案

可以更清楚(事实上,I just created a PR这样做),但隐藏在the docs on the Azure DevOps NuGet Task的Yaml代码段的注释末尾,它说:

使用NuGet.exe并与.NET框架应用程序配合使用。对于.NET Core和.NET Standard应用程序,请使用.NET Core任务。

查看nuget'exe pack docs,它显示:

对基于PackageReference的项目使用DotNet Pack或msBuild-t:Pack。

因此,nuget.exe pack基本上不支持PackageReference,而所有.NET核心项目都是PackageReference。因此,您不应该使用Azure DevOps中的NuGet任务来打包PackageReference项目,或者使用.NET Core任务(它使用DotNet cli),或者使用带有-t:pack参数的MSBuild。

这篇关于通过Azure DevOps部署Nuget包时未添加依赖项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:通过Azure DevOps部署Nuget包时未添加依赖项

基础教程推荐