gpt4 book ai didi

c# - .Net 核心应用程序无法在 Linux 上运行?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:22:04 24 4
gpt4 key购买 nike

我在 Visual Studio 中创建了一个 .Net 核心 C# 控制台应用程序,并使用以下步骤在 Linux 上对其进行了测试。

  1. 使用 Visual Studio“构建 -> 发布”菜单项在 ....\bin\Release\netcoreapp2.1\publish 中创建可执行文件。
  2. 将“发布”目录复制到 Linux 机器上
  3. 在 Linux 上,chmod 777 myApp.dll
  4. ./myApp.dll

但是,执行应用程序显示错误

-bash: ./myApp.dll: cannot execute binary file

最佳答案

看起来你做了一个 Framework-Dependendent Deployment .本质上,发布命令是:

dotnet publish -c Release

FDD 假定您将拥有一个 .NET Core 运行时来在目标平台上运行您的应用程序。

publish 目录复制到另一台机器(可能是 Linux、macOS 或 Windows)后,您的应用程序仍然需要 .NET Core 运行时来运行您的应用程序。

安装 .NET Core 运行时取决于您使用的特定 Linux 发行版。安装后,您可以通过以下方式运行您的应用程序:

dotnet /path/to/publish/myApp.dll

Framework Dependent Deployment 的替代方案是 Self-Contained Deployment .在此模式下,已发布的应用程序将包含您的应用程序以及 .NET Core 运行时的副本。在命令行上,执行 SCD 发布如下所示:

dotnet publish -r linux-x64 -c Release

要在 Visual Studio 中执行此操作,请参阅上面的链接。然后,您应该会看到一个 bin\Release\netcoreapp2.1\linux-x64\publish\ 目录,其中包含一个 myApp 文件。您可以将此发布目录复制到 Linux 发行版并运行:

/path/to/linux-x64/publish/myApp

关于c# - .Net 核心应用程序无法在 Linux 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51973599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com