web-dev-qa-db-ja.com

UbuntuターミナルでC#コードをコンパイル、実行、逆コンパイルするにはどうすればよいですか?

ターミナルを使用してコンパイル、実行、および逆コンパイルする必要があるC#コードがあります。

どうすればできますか?

4
Sonevol

monoを使用できます。これはC#実装であり、クロスプラットフォームのサポートがあり、オープンソースです。

ターミナルを開き、モノをインストールします。

Ubuntu 18.04の場合

Sudo apt install apt-transport-https dirmngr
Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu vs-bionic main" | Sudo tee /etc/apt/sources.list.d/mono-official-vs.list
Sudo apt update

Ubuntu 16.04の場合

Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
Sudo apt install apt-transport-https
echo "deb https://download.mono-project.com/repo/ubuntu vs-xenial main" | Sudo tee /etc/apt/sources.list.d/mono-official-vs.list
Sudo apt update

Ubuntu 14.04の場合

Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
Sudo apt install apt-transport-https
echo "deb https://download.mono-project.com/repo/ubuntu vs-trusty main" | Sudo tee /etc/apt/sources.list.d/mono-official-vs.list
Sudo apt update

次に入力

Sudo apt install mono-complete

現在のディレクトリにサンプルC#ファイルを作成します

たとえば、次のコードを使用できます。

class GoodDay
{
    public static void Main()
    {
        System.Console.WriteLine("Good Day!");
    }
}

Geditなどのテキストエディタを使用し、次のコードを入力して、ファイルをGoodDay.csとして保存します

コードをコンパイルするコマンド-

mcs -out:GoodDay.exe GoodDay.cs

実行可能ファイルGoodDay.exeが生成されます。

.exeファイルを実行するコマンド-

mono GoodDay.exe

出力は-

Good Day!

実行可能ファイルを逆コンパイルするコマンド-

monodis --output=GoodDay.txt GoodDay.exe

逆コンパイルされたコード情報は、新しく生成されたファイルGoodDay.txtに保存されます

2
Sonevol

DebianパッケージからインストールしないMonoまたはMicrosoft .NET用のソフトウェアを実行する場合は、mono-completeをインストールする必要があります。


  1. インストールmono-complete。 Ubuntuの現在サポートされているすべてのバージョンで、ターミナルを開いて次を入力します。

    Sudo apt install mono-complete
    
  2. Hello.csというファイルにC#コードを保存します。 hello.csコードの例:

    using System;
    
    namespace Project_1 {
        class MainClass {
            public static void Main (string[] args) {
                Console.WriteLine ("Hello World!");
                Console.ReadKey ();
            }
        }
    }
    
  3. Hello.csを実行可能にします。 hello.csファイルを右クリック->Properties->Permissionsタブ->の左側にチェックマークを付けて、プログラムとしてファイルの実行を許可します

  4. cdコマンドを使用して、hello.csファイルを含むディレクトリにディレクトリを変更します。

  5. Mcsコンパイラを使用して、ソースhello.csからhello.exeという名前のWindows実行可能ファイルを作成します。

    mcs -out:hello.exe hello.cs
    
  6. モノでhello.exeプログラムを実行します。

    mono hello.exe
    
  7. 手順6でプログラムを実行した結果は次のようになります。

    Hello World!  
    
  8. 押す Enter 終了してデフォルトのターミナルプロンプトに戻ります。

  9. 実行可能ファイルを逆コンパイルします。

    monodis --output=decompiled-hello.txt hello.exe
    
3
karel