簡體   English   中英

System.Reflection 未被 nuget 包文件夾引用

[英]System.Reflection not being referenced from nuget package folder

我正在將System.Reflection nuget 包安裝到我的項目中,但是當我檢查 dll 的引用路徑時,它顯示C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Reflection.dll

我什至嘗試刪除它並從 nuget 包文件夾中手動添加它,但它仍然顯示相同的路徑。 我如何確保它是從 nuget 包文件夾而不是從程序文件中引用的?

System.Reflection包幾乎不包含任何內容,只有空文件夾。

System.Reflection 包內容

lib文件夾中,只有一個用於 .NET Framework 4.6.2 的System.Reflection.dll ,但即使該程序集也是空的,除了對mscorlib的引用。 因此,除了 .NET Framework 4.6.2,NuGet 包文件夾或項目輸出目錄中不會有任何程序集。 這些程序集由底層框架運行時提供。

您看到的路徑是參考程序集的路徑。 這也是包在ref文件夾中提供的內容。 有關引用程序集和運行時程序集之間的區別,請參閱此相關帖子 引用@hansPassant 和@MartinUllrich:

所以正如 Hans Passant 已經提到的,“引用”程序集用於構建程序,這意味着這是作為引用傳遞給編譯器的程序集。 然而,在運行時,實現可能會有所不同。 除了框架本身,這可以被任何 NuGet 包使用,這些包分發單個編譯時引用程序集,但為每個目標(.NET Core、.NET Framework、MonoAndroid 等)分發各種實現程序集。 NuGet 包中的 lib 文件夾甚至可用於添加更多不希望使用應用程序直接引用的私有實現程序集。

引用程序集只有“存根”方法,以便定義可用的 API 表面並可由編譯器檢查。

暫無
暫無

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

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