【问题标题】:Dependencies not getting added when Nuget package deployed through Azure Devops通过 Azure Devops 部署 Nuget 包时未添加依赖项
【发布时间】:2020-06-18 20:20:00
【问题描述】:

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

然后我通过创建管道通过 Azure devops 部署了相同的库。现在在同一个控制台应用程序中,如果我从我的 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 文件

我在这里错过了什么。

【问题讨论】:

  • Azure NuGet 任务上的这个 link 可能会有所帮助。
  • 我的猜测是,在 Azure DevOps 上,您使用的是 NuGet 任务打包,它使用 nuget.exe。然而nuget.exe pack 不支持PackageReference,所以你得到你所看到的。您应该改用 dotnet 任务,并以这种方式运行 pack。
  • @zivkan - 这就是问题所在。我用 dotnet pack 替换了 nuget pack,问题得到了解决。
  • @zivkan。如果您可以将您的解决方案转换为答案,那就太好了!

标签: c# azure azure-devops nuget nuget-package


【解决方案1】:

它可能更清楚(实际上,I just created a PR 这样做),但隐藏在 the docs on the Azure DevOps NuGet Task 的 YAML sn-p 中的注释末尾它说:

使用 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),要么使用带有 -t:pack 参数的 MSBuild。

【讨论】:

    猜你喜欢
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 2018-05-29
    • 1970-01-01
    • 2016-08-31
    • 2021-12-28
    • 2021-03-11
    相关资源
    最近更新 更多