【发布时间】:2019-07-25 16:36:29
【问题描述】:
我正在尝试在 CentOS 上运行一个简单的程序。
程序:
using System;
namespace helloworld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
returnHello();
}
static string returnHello()
{
return "hwdy ha";
}
}
}
我的发布设置是:
- 配置: Release|Any CPU
- 目标框架: netcoreapp2.1
- 部署模式:自包含
- 目标运行时: linux-x64
- 目标位置: bin\Release\netcoreapp2.1\publish\
在我运行的终端中
dotnet publish --self-contained -r linux-x64 -c release
然后将文件夹 \publish 复制到我的 CentOS 机器上。
使用文件 helloworld,我看到了文件详细信息:
ELF 64 位 LSB 可执行文件,x86-64,版本 1(SYSV),动态链接 (使用共享库),对于 GNU/linux.2.6.32, BuildID[sha1]=0x22d087f79061d441f9f6d007bf336f380c1214db,剥离
使用 uname -r:
3.2.0-3-amd64
在 CentOS 中,我进入发布文件夹并运行:bash helloworld。作为回应,我得到 p>
helloworld: 无法执行二进制文件
.
我不确定我在这里缺少什么,对我来说,该文件似乎针对正确的操作系统,但我无法在 CentOS 中执行该文件。任何帮助表示赞赏。谢谢
【问题讨论】:
-
你试过 CPU ANY 了吗?
-
是的,很抱歉我错过了写这篇文章。
-
这是什么版本的 CentOS? 6?
-
@OmairMajid,当我运行“uname -or”时,我得到 3.2.0-3-amd64 GNU/Linux。我不完全确定它是否是 6。
-
试试
cat /etc/*-release。
标签: c# linux bash .net-core x86-64