簡體   English   中英

通過 Azure Devops 部署 Nuget 包時未添加依賴項

[英]Dependencies not getting added when Nuget package deployed through Azure Devops

我已經創建了 .net 標准庫。 創建后,我嘗試通過選擇項目文件中的包選項從我的 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>

我嘗試按照此處的建議在項目文件中添加以下內容,但沒有幫助。

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

注意:我的項目中沒有.nuspec文件

我在這里錯過了什么。

它可能更清楚(事實上,我剛剛創建了一個 PR來這樣做),但隱藏在Azure DevOps NuGet 任務上文檔的 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),要么使用帶有-t:pack參數的 MSBuild。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM