【问题标题】:cannot run c# app in linux on dotnetcore 3.1无法在 dotnetcore 3.1 上的 linux 中运行 c# 应用程序
【发布时间】:2020-05-21 08:59:59
【问题描述】:

我是 dotnet 平台的新手。我有一个预建在 Windows 中的 c# 应用程序,我想在 dotnetcore (3.1) 平台上的 linux (Centos-7 x64) 中运行它。 我认为这个应用程序可以直接在 dotnetcore (linux) 上运行,而无需付出额外的努力。

但是当我在下面的命令行上运行它时,我得到“无法执行二进制文件”。

$./app.exe

额外: 我还为完全实验安装了单声道平台,我使用 xbuild 在 linux 平台上成功构建了 win-apps sln。但是当我运行应用程序时,我又遇到了同样的错误 在 Linux 上。

我的 dotnet 是:

dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   3.1.300
 Commit:    b2475c1295

Runtime Environment:
 OS Name:     centos
 OS Version:  7
 OS Platform: Linux
 RID:         centos.7-x64
 Base Path:   /usr/share/dotnet/sdk/3.1.300/

Host (useful for support):
  Version: 3.1.4
  Commit:  0090613580

.NET Core SDKs installed:
  3.1.300 [/usr/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.App 3.1.4 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.4 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

你能帮我解决这个问题吗?

谢谢。

【问题讨论】:

  • 尝试运行“dotnet app.exe”
  • windows 和 linux 平台都是 64 位的。 (Windows 10 & centos7-64)
  • “我认为这个应用程序可以直接在 dotnetcore (linux) 上运行,而无需付出额外的努力。” ...不,这不是真的,对于 .NET 或对于任何其他语言或框架)。 Windows 可执行文件是与 Linux 可执行文件完全不同的文件类型。 stackoverflow.com/a/46861681/5947043 可能会对您有所帮助 - 您必须专门为目标平台构建。教程docs.microsoft.com/en-us/dotnet/core/tutorials/… 还说“编译应用程序时,创建了一个操作系统特定的可执行文件”。
  • 另见docs.microsoft.com/en-us/dotnet/core/deploying/… - 它说得很清楚:“可执行文件不是跨平台的。它们特定于操作系统和 CPU 架构”。在将时间花在永远不会起作用的事情上之前,始终阅读文档会有所帮助……您需要为要运行它的平台再次构建应用程序。

标签: c# linux .net-core


【解决方案1】:

“exe”文件在 Linux 环境中不可执行

要运行您的应用程序,请运行 dotnet <project name>.dll

【讨论】:

    猜你喜欢
    • 2017-11-18
    • 2022-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 2020-09-17
    相关资源
    最近更新 更多