Как я могу скомпилировать, выполнить и декомпилировать код C# в терминале Ubuntu?

У меня есть код C#, который я должен скомпилировать, выполните и декомпилируйте использование терминала.

Как я могу сделать так?

4
задан 13 December 2018 в 10:52

2 ответа

Можно использовать 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
ответ дан 1 December 2019 в 09:29

Необходимо установить монозавершенный, если Вы хотите запустить программное обеспечение для Моно или Microsoft.NET, который Вы не устанавливаете от пакета Debian.


  1. Монозавершенная установка. Во всех в настоящее время поддерживаемых версиях Ubuntu открывают терминал и тип:

    sudo apt install mono-complete
    
  2. Сохраните свой код C# в файле, названном hello.cs. Пример 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. Используйте компилятор мГц и создайте исполняемый файл Windows под названием hello.exe из источника hello.cs.

    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
ответ дан 1 December 2019 в 09:29

Другие вопросы по тегам:

Похожие вопросы: