Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有可能在Linux上发布一个独立的c#应用程序吗?_C#_Linux_.net Core_Centos - Fatal编程技术网

有可能在Linux上发布一个独立的c#应用程序吗?

有可能在Linux上发布一个独立的c#应用程序吗?,c#,linux,.net-core,centos,C#,Linux,.net Core,Centos,我正在尝试将我制作的C#net核心控制台应用程序发布到运行64位Centos 7的Linux机器上。目前,我正在使用以下命令发布应用程序:dotnetpublish-c release-r contos.7-x64。不幸的是,以这种方式发布似乎需要在目标计算机上安装.net core。如果我不需要在发布到的计算机上安装任何东西,是否可以执行此操作?在.NET Core 2.2中,您可以使用以下命令创建一个自包含的应用程序(即不需要在主机上安装.NET Core运行时)dotnet publish

我正在尝试将我制作的C#net核心控制台应用程序发布到运行64位Centos 7的Linux机器上。目前,我正在使用以下命令发布应用程序:
dotnetpublish-c release-r contos.7-x64
。不幸的是,以这种方式发布似乎需要在目标计算机上安装.net core。如果我不需要在发布到的计算机上安装任何东西,是否可以执行此操作?

在.NET Core 2.2中,您可以使用以下命令创建一个自包含的应用程序(即不需要在主机上安装.NET Core运行时)
dotnet publish-r centos.7-x64-c Release--self-contained
。它将产生可执行文件和许多依赖项

在.NET Core 3中,您可以将所有依赖项压缩到单个文件
dotnet publish-r centos.7-x64-c Release/p:PublishSingleFile=true
。您还可以添加标志
/p:PublishTrimmed=true
,以将可执行文件的大小减少


可以找到更多详细信息。

我发现问题在于项目没有编译到核心2。相反,该项目正在编译到版本1。进行此更改后,发布的项目能够在Centos上运行。

“以这种方式发布似乎需要在我试图发布到的机器上安装core”-您为什么得出结论?您使用的id是否正确。Centos列在linux-x64 id下,你试过使用它吗?我测试了将一个简单的控制台应用程序发布到Ubuntu机器上(没有安装.NET内核),它运行得很好。我不明白为什么Centos会有什么不同。