Как я могу скомпилировать, запустить и декомпилировать код C# в терминале Ubuntu?
У меня есть код C#, который мне нужен для компиляции, выполнения и декомпиляции с использованием терминала.
Как я могу это сделать?
4 ответа
Ты можешь использовать 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
Вам нужно установить mono-complete, если вы хотите запустить программное обеспечение для Mono или Microsoft .NET, которое вы не устанавливаете из пакета Debian.
Установить моно-комплект. Во всех поддерживаемых в настоящее время версиях Ubuntu откройте терминал и введите:
sudo apt install mono-complete
Сохраните ваш код C# в файле с именем hello.cs. Пример кода hello.cs:
using System; namespace Project_1 { class MainClass { public static void Main (string[] args) { Console.WriteLine ("Hello World!"); Console.ReadKey (); } } }
Сделайте hello.cs исполняемым. Щелкните правой кнопкой мыши файл hello.cs -> выберите Свойства -> вкладка Разрешения -> поставьте галочку слева от Разрешить выполнение файла как программы.
Изменить каталоги с помощью
cd
Команда в каталог, который содержит файл hello.cs.Используйте компилятор mcs и создайте исполняемый файл Windows с именем hello.exe из исходного файла hello.cs.
mcs -out:hello.exe hello.cs
Запустите программу hello.exe с моно.
mono hello.exe
Результаты запуска вашей программы на шаге 6 должны быть:
Hello World!
Нажмите Enter, чтобы вернуться к терминалу по умолчанию.
Декомпилируйте исполняемый файл.
monodis --output=decompiled-hello.txt hello.exe
Официальный .NET Core от Microsoft существует с 2016 года. Это программное обеспечение с открытым исходным кодом , которое поддерживает множество платформ. Даже Mono теперь имеет общий код с .NET Core, поэтому в 2018 году почти нет причин использовать Mono.
Просто зайдите на официальный сайт , чтобы скачать и установить. Если вы хотите выполнить установку из командной строки, посетите страницу Установка .NET в Linux , в частности Установка .NET SDK или среды выполнения .NET в Ubuntu . Чтобы установить SDK и среду выполнения с помощью apt
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-5.0
Вы также можете установить с оснасткой
sudo snap install dotnet-sdk --classic --channel=5.0
Настоящим решением с открытым исходным кодом по состоянию на 2021 год по-прежнему является Mono, доступное на их сайте https://www.mono-project.com/ . Неудивительно, что реализация Microsoft плохо работает (медленно, не отвечает) в Linux. Этого следовало ожидать, поскольку Microsoft долгое время является врагом Linux и его бесплатной природы с открытым исходным кодом. Придерживайтесь Mono, он все еще разрабатывается и легко устанавливается. Инструкции по загрузке по включенной ссылке