繁体   English   中英

在.net核心和.net框架中使用.net标准包

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM