可以在Linux上运行.Net 4.6吗?

5
我正在将一个Web项目从DotNet 4.6升级到DotNetCore 2.0,我打算在Linux上运行这个应用程序。我想延迟一些代码的升级到DotNetCore,比如引用的DLL。我发现你可以在这个答案中引用旧的DLL

Add .NETFramework 4.5 dll to .NETCore project

但是,我猜这样做不能在Linux上运行,对吗?有什么方法可以解决这个问题吗?

1个回答

4

这不是唯一的限制。您引用的程序集不能使用在.NET Standard 2.0中不可用的任何API!基本上,能够在.NET Core / .NET Standard中引用.NET 4.5库是无用的,并且仅限于不使用任何非.NET Core 2.0 API并且尚未为netstandard2.0移植的库(即被遗弃或孤立的库,因为它们不再得到积极维护,所以不会有官方更新)。 - Tseng
你是对的,由于限制,一些在Linux上不可用的API还有更多。如果你需要使用旧库并且没有机会将它们移植,那么它并不是真正无用的。我在将LightCore(https://github.com/juergengutsch/lightcore)移植到.NET Standard 2.0时使用它,并支持旧的用法和框架。 - Juergen Gutsch
我的特定DLL包含业务层和实用程序类型的代码。据我所知,我没有使用任何特定于Windows的API。显然,早期测试是我的朋友。 - Danny Ellis Jr.
3
@DannyEllisJr:你应该安装 .NET Portability Analyzer VS 2017 扩展,然后针对你想要使用的 .NET 2.0/.NET Standard 2.0 档案运行它。如果它显示任何不可用的 API,则很可能在使用它时会遇到问题,并且需要先将其移植到 .NET Standard 2.0 或确保不从代码中调用该 API(除非你可以访问源代码,否则这并不容易,但是你可以轻松地将其编译为 .NET Standard 2.0)。 - Tseng

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接