command line

¿Cómo puedo compilar,ejecutar y descompilar código C#en el terminal de Ubuntu?

Tengo un código C#que necesito compilar,ejecutar y descompilar usando la terminal.

¿Cómo puedo hacerlo?


Debe instalar mono-complete si desea ejecutar software para Mono o Microsoft .NET que no está instalando desde un paquete Debian.


  1. Instalar mono-completa . En todas las versiones actualmente compatibles de Ubuntu, abra la terminal y escriba:

    sudo apt install mono-complete
    
  2. Guarde su código C#en un archivo llamado hello.cs.El ejemplo de código hello.cs es:

    using System;
    
    namespace Project_1 {
        class MainClass {
            public static void Main (string[] args) {
                Console.WriteLine ("Hello World!");
                Console.ReadKey ();
            }
        }
    }
    
  3. Haz que hello.cs sea ejecutable. Haga clic con el botón derecho en el archivo hello.cs -> seleccione Propiedades -> pestaña Permisos -> coloque una marca de verificación a la izquierda de Permitir la ejecución del archivo como programa .

  4. Cambie de directorio con el comando cd al directorio que contiene el archivo hello.cs.

  5. Utilice el compilador mcs y cree un ejecutable de Windows llamado hello.exe a partir de la fuente hello.cs.

    mcs -out:hello.exe hello.cs
    
  6. Ejecuta el programa hello.exe con mono.

    mono hello.exe
    
  7. Los resultados de la ejecución de su programa en el paso 6.deberían ser:

    Hello World!  
    
  8. PressEnterpara volver a salir a un prompt de terminal por defecto.

  9. Descompilar el archivo ejecutable.

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



Puede usar mono , que es una implementación de C# , tiene soporte multiplataforma y es de código abierto.

Abre el terminal e instala mono:

Para Ubuntu 20.04 (Estable)

sudo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update

Para 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

Para 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

Para 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

Then type

sudo apt install mono-complete

Cree un archivo C# de muestra en el directorio actual

Por ejemplo,puede utilizar el siguiente código:

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

Use cualquier editor de texto como gedit, escriba el siguiente código y guarde el archivo como GoodDay.cs

El comando para compilar el código -

mcs -out:GoodDay.exe GoodDay.cs

Se genera un archivo ejecutable GoodDay.exe .

El comando para ejecutar el archivo .exe -

mono GoodDay.exe

La salida será -

Good Day!

El comando para descompilar el archivo ejecutable -

monodis --output=GoodDay.txt GoodDay.exe

La información del código descompilado se guarda en el archivo recién generado GoodDay.txt