簡體   English   中英

已使用 '.NETFramework,Version=v4.6.1' 而不是項目目標框架 ' 恢復

[英]was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '

我正在嘗試引用一個 nuget 包,它顯然是.NetStandard2.0 我們擁有此包的源代碼並將其寫入目標 .netstandard。 我們確實有一個 CI 管道,因此當我們推送此代碼時,它會構建和發布 nuget 包。 當我嘗試將生成的 nuget 包引用到我當前的 .netCore 應用程序中時,出現以下錯誤:

was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.1'. This package may not be fully compatible with your project.

這對我來說沒有任何意義。 到目前為止,我已經嘗試了以下調試步驟:

  • 直接引用源代碼作為我項目的項目引用。 哪個工作得很好。
  • dotpeek分析生成的 nuget 包,以確保它實際上是一個 .netstandard 包。

不知道是什么讓它認為它在任何時候都是針對的。 下面是我的 .csproj 配置的樣子

<TargetFramework>netstandard2.0</TargetFramework>

不確定這里是否有任何其他配置塊重要,但如果您需要更多信息,請告訴我。 有任何想法嗎?

我遇到了一個類似的問題,我通過 Azure Artifacts 發布我自己的 NetStandard2.0 包,然后嘗試在 netcore 應用程序中使用它。

結果發現問題在於我將我的包命名為與現有 NuGet 包相同的名稱。 我的 Azure Artifacts nuget 提要在 Visual Studio 中正確配置,但是當它嘗試安裝包時,它首先嘗試默認的 NuGet 提要,然后選擇另一個(恰好是 NetFramework 提要)而不是我的。

一旦我將我的包重命名為唯一的(我剛剛添加了我自己的命名空間)並重新發布,它一切正常。

我想這可能不是每個人的問題,但對我來說是。

您必須使用項目中與 .NETCoreApp,Version=v2.0 兼容的每個包。

在錯誤消息中的“was”之前應該有一些包名。 例如:

Package 'Microsoft.AspNet.WebApi.Client 5.2.2' was restored
Package 'EntityFramework 6.2.0' was restored 

我也遇到了這個問題。 在我的例子中,當 DLL 被打包並放置在lib/文件夾中時,出現了導入警告。 通過將打包lib/netstandard2.0 DLL放在lib/netstandard2.0文件夾中解決了。

我有同樣的問題。 要解決這個問題

  1. 在依賴項/包下查看 VS2019。
  2. 然后尋找旁邊帶有警告標志的包裹。
  3. 轉到您的windows配置文件目錄並刪除.nuget下的相應文件夾
  4. 刪除依賴項/包下的引用
  5. 通過 Manage Nuget Packages 添加 Nuget 包以獲取解決方案

暫無
暫無

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

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