首页 > 解决方案 > 使用 .Net Core 运行 .Net Framework 应用程序(在 Linux 上)

问题描述

我们有一些使用 .Net Framework 开发的控制台应用程序。我们曾经在 Windows 上运行它们,但现在我们想尝试使用 .Net Core。到目前为止,这种极其简单的方法运行良好(在 Core 2.2 上运行 Framework 4.5.1 应用程序):

  1. 将应用程序及其所有依赖项复制到 Linux。

  2. runtimeconfig.json文件从 Hello World .Net Core 示例复制到应用程序目录并相应地重命名。

  3. 只需dotnet ./app.exe在 Linux 上从该目录运行即可。

我发现它在不为新目标重建的情况下工作真的很令人惊讶。但我怀疑这种方法可能存在隐藏的问题或局限性。一方面,如果应用程序使用 Core 之外的东西(比如 WPF),它显然不会运行。

使用 .Net Core 运行 .Net Framework 应用程序的确切条件是什么?有什么特定于 Linux 的吗?或者对于特定版本的框架/核心?

标签: .netlinux.net-core

解决方案


您将遇到的主要问题是您需要在要运行应用程序的任何 Linux 安装上安装 dotnet 运行时,否则您必须直接为每个支持的平台构建二进制文件,目前是 Ubuntu 、Debian、Fedora、Red Hat Enterprise Linux、OpenSUSE、Cent OS 和 SLES。总的来说,.NET Framework 中唯一不能直接工作的 2 个常用的东西是 Entity Framework,你需要使用 Entity Framework Core;以及任何与 UI 相关的内容。一般来说,CLI 应用程序应该可以正常工作,但可能需要进行一些调整。


推荐阅读