[英]Using a .net standard package in .net core and .net framework
我有一個使用.net Standard 2.0構建的包。 我希望能夠在.net Framework和.net Core應用程序中使用它,但它具有以下代碼行:
using System.Runtime.Loader;
…
AssemblyLoadContext.Default.Unloading += (ctx) => ProcessStop();
…
這不適用於.net Framework(看起來像System.Runtime.Loader是一個核心包)。 我可以在編譯時使用這種語句省略它:
#if NETCOREAPP2_0 || NETCOREAPP2_1
AssemblyLoadContext.Default.Unloading += (ctx) => ProcessStop();
#endif
在編譯軟件包時,這對我沒有幫助,我想在.net Framework中使用它。 有人知道怎么做內聯這種東西嗎?
在此先感謝您的任何指示!
似乎存在具有問題AssemblyLoadContext
根據(或System.Runtime.Loader包要准確) https://github.com/dotnet/cli/issues/6019封裝聲稱支持.NET的框架(和netstandard1.5)但顯然沒有。 所以,是的,System.Runtime.Loader似乎是一個僅核心的軟件包 - 在我看來,絕對顛覆了.NET-Standard的概念......
現在的結果是,您提到的.NET-Standard 2.0軟件包並不真正支持.NET-Standard 2.0,但.NET-Core> = 1.0(從System.Runtime.Loader的角度來看)。 如果沒有提到的開關與.NET-Framework一起使用,我認為沒有機會制作已編譯的版本。
有人知道怎么做內聯這種東西嗎?
將提到的庫作為NuGet-package提供時,可以將運行時特定的實現提取到特定於運行時的DLL: https : //docs.microsoft.com/en-us/nuget/create-packages/supporting-multiple- target-frameworks但是,這當然意味着重新編譯包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.