3

Linux のコマンド ラインからこの C# プログラムを起動するには、どのコマンドを使用すればよいですか? 既にコンパイル済み (Monodevelop を使用) ですが、コマンド ラインから起動する方法がわかりません。

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

1 に答える 1

8

Linux で C# (またはその他の .NET) プログラムを起動するために必要なコマンド ラインは、Linux システムの構成方法によって異なります。

標準的な答えは、monoプログラムを実行し、実行可能なアセンブリの名前をパラメーターとして渡すことです。実行可能アセンブリの名前は通常、プロジェクト ファイルの名前と同じですが、簡単に変更できます。.exeコンパイルが完了したら、末尾が で終わるファイルを探してください。bin\Debug、または同様の名前のフォルダーにありbin\Releaseます(プロジェクトのビルド設定の設定方法によって異なります)。したがって、というプログラムを作成したhello.exe場合は、プロジェクト フォルダーに移動して次を実行します。

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

プログラムを実行する必要があるのmonoは、Linux がデフォルトで .NET ランタイムを自動的に実行する方法を認識していないためです。Windows に .NET をインストールすると、プログラムをロードする OS の部分が実際に変更されるため、Windows は .NET プログラムを自動的に認識してランタイムをロードするだけです。monoLinux では、最初にプログラムを実行して、自分で行う必要があります。

Linux で多くのマネージ コードを実行する場合は、Windows と同じように動作するように Linux カーネルを構成することもできます。Linux は「その他のバイナリ形式」をサポートしています。これにより、ネイティブの Linux 形式ではないバイナリを実行する方法を Linux に伝えることができます。これはやや高度です。カスタム カーネルを構築する必要がある可能性がありますが、お使いの Linux ディストリビューションにそれを行うためのより良い方法があったとしても、私は驚かないでしょう。このプロセスの詳細については、次の場所を参照してください。

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

于 2012-10-21T02:40:11.517 に答える