从Linux上的命令行启动C#程序

时间:2012-10-21 01:53:06

标签: c#

我应该使用什么命令从Linux命令行启动此C#程序?我已经编译了它(使用Monodevelop),但我不知道如何从命令行启动它。

using System;
class ExampleClass
{
    static void Main()
    {
        Console.WriteLine("Hello, world!");
    }
}

1 个答案:

答案 0 :(得分:6)

在Linux上启动C#(或任何其他.NET)程序所需的命令行取决于您如何配置Linux系统。

标准答案是运行mono程序,并将可执行程序集的名称作为参数传递。可执行程序集的名称通常与项目文件的名称相同,但您可以轻松更改它;完成编译后,只需查找以.exe结尾的文件。它将位于名为bin\Debugbin\Release或类似名称的文件夹中(具体取决于您如何设置项目构建设置)。因此,如果您构建了一个名为hello.exe的程序,您将进入项目文件夹并运行:

~/projects/hello $ mono bin\Debug\hello.exe

您需要运行mono程序的原因是因为Linux默认情况下不知道如何自动运行.NET运行时。当您在Windows上安装.NET时,它实际上会更改加载程序的操作系统部分,因此Windows只会自动识别.NET程序并加载运行时。在Linux上,您需要首先运行mono程序来自己完成。

如果在Linux上运行大量托管代码,您还可以将Linux内核配置为与Windows相同的方式。 Linux支持“其他二进制格式”,允许您告诉Linux如何执行非本机Linux格式的二进制文件。这有点高级 - 它可能需要你构建一个自定义内核,但如果你的Linux发行版有更好的方法,我也不会感到惊讶。有关此过程的更多信息,请访问:

http://www.kernel.org/doc/Documentation/mono.txt