簡體   English   中英

有沒有辦法確定 NuGet 包針對的是哪個版本的 .Netstandard?

[英]Is there a way to determine which version of .Netstandard is targeted by a NuGet package?

最近我嘗試將 SignalR dll 導入 Unity 項目(支持 .NET Standard 2.0)。 NuGet 包 -> Microsoft.AspNetCore.SignalR.Client 當前版本為 3.1.2。 以下是列出的依賴項:

.NET 標准,版本=v2.0

Microsoft.AspNetCore.Http.Connections.Client

(>= 3.1.2) Microsoft.AspNetCore.SignalR.Client.Core (>= 3.1.2)

但是,當我將這些 dll 移動到 Unity 項目中時,遇到了一個錯誤:

錯誤 CS1705 程序集“Microsoft.AspNetCore.SignalR.Client.Core”,標識為“Microsoft.AspNetCore.SignalR.Client.Core,版本=3.1.2.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”使用“netstandard,版本=2.1.0.0” , Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' 其版本高於引用的程序集 'netstandard',標識為 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'

這對我來說很有意義,因為我不希望 Unity 支持 2.1 版( .NET Standard 文檔中的表格指出 2.0 是 Unity 的最新版本。我可以將包降級到 1.1 版,並且一切正常正如預期的那樣(至少這個錯誤消失了)我通過瀏覽每個版本來確定選擇哪個版本的 SignalR.Client,安裝/復制直到錯誤消失。

1.1.0 的依賴項是相同的(除了 Core 和 Client 包現在列為(>=1.1.0)而不是(>= 3.1.2)

問題:有沒有比猜測和檢查來確定需要哪個版本的 .NET Standard“更好”的方法,也許某個地方的規范顯示了要使用的包需要支持哪個版本的 .NET Standard?

是的,有一個簡單的方法。

FuGet列出了有關 NuGet 包的許多詳細信息,包括針對哪些框架的哪些版本。 例如,Microsoft.AspNetCore.SignalR.Client 3.1.2 以 netstandard2.0 為目標。

一個方便的快捷方式是您正在查看包的 NuGet 頁面,只需在 URL 欄中使用“fuget”重播“nuget”即可輕松進入 Fuget 頁面。

暫無
暫無

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

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