Sonevol Asked: 2018-12-13 22:03:47 +0800 CST2018-12-13 22:03:47 +0800 CST 2018-12-13 22:03:47 +0800 CST 如何在 Ubuntu 终端中编译、运行和反编译 C# 代码? 772 我有一个 C# 代码,我需要使用终端对其进行编译、执行和反编译。 我该怎么做? command-line compiling mono c# 4 个回答 Voted karel 2018-12-13T22:11:30+08:002018-12-13T22:11:30+08:00 如果您想运行不是从 Debian 软件包安装的 Mono 或 Microsoft .NET 软件,则需要安装mono-complete 。 安装单声道完成。在所有当前支持的 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 文件 -> 选择Properties -> Permissions选项卡 -> 在Allow execution file as program左侧打勾。 使用cd命令将目录更改为包含 hello.cs 文件的目录。 使用 mcs 编译器并从源代码 hello.cs 创建一个名为hello.exe的 Windows 可执行文件。 mcs -out:hello.exe hello.cs 使用单声道运行 hello.exe 程序。 mono hello.exe 在步骤 6 中运行程序的结果应该是: Hello World! 按Enter退出回到默认终端提示。 反编译可执行文件。 monodis --output=decompiled-hello.txt hello.exe Best Answer Sonevol 2018-12-13T22:03:47+08:002018-12-13T22:03:47+08:00 您可以使用monowhich is C#implementation,具有跨平台支持并且是开源的。 打开终端并安装单声道: 对于 Ubuntu 20.04 (稳定版) 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 对于 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 phuclv 2021-08-02T08:05:23+08:002021-08-02T08:05:23+08:00 Microsoft的官方.NET Core于 2016 年问世。它是开源软件,支持多种平台。甚至 Mono 现在也与 .NET Core 共享一些代码,因此在 2018 年几乎没有理由使用 Mono 直接去官网下载安装即可。如果您想从命令行安装,请访问在 Linux 上安装 .NET,特别是在 Ubuntu 上安装 .NET SDK 或 .NET 运行时。使用 apt 安装 SDK 和运行时 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 您也可以使用 snap 安装 sudo snap install dotnet-sdk --classic --channel=5.0 Martin 2021-10-26T03:20:34+08:002021-10-26T03:20:34+08:00 截至 2021 年,真正的开源解决方案仍然是 Mono,可在其网站https://www.mono-project.com/上获得微软的实施不出所料地在 Linux 上运行不佳(缓慢、无响应)。这是意料之中的,因为微软长期以来一直是 Linux 及其免费、开源性质的克星。坚持使用 Mono,它仍在开发中且易于安装。在包含的链接上下载说明
如果您想运行不是从 Debian 软件包安装的 Mono 或 Microsoft .NET 软件,则需要安装mono-complete 。
安装单声道完成。在所有当前支持的 Ubuntu 版本中,打开终端并输入:
将 C# 代码保存在名为 hello.cs 的文件中。示例 hello.cs 代码是:
使 hello.cs 可执行。右键单击 hello.cs 文件 -> 选择Properties -> Permissions选项卡 -> 在Allow execution file as program左侧打勾。
使用
cd
命令将目录更改为包含 hello.cs 文件的目录。使用 mcs 编译器并从源代码 hello.cs 创建一个名为hello.exe的 Windows 可执行文件。
使用单声道运行 hello.exe 程序。
在步骤 6 中运行程序的结果应该是:
按Enter退出回到默认终端提示。
反编译可执行文件。
您可以使用
mono
which isC#
implementation,具有跨平台支持并且是开源的。打开终端并安装单声道:
对于 Ubuntu 20.04 (稳定版)
对于 Ubuntu 18.04
对于 Ubuntu 16.04
对于 Ubuntu 14.04
然后输入
C#
在当前目录下创建示例文件例如,您可以使用以下代码:
使用任何文本编辑器,如 gedit,键入以下代码并将文件另存为
GoodDay.cs
编译代码的命令 -
生成一个可执行文件
GoodDay.exe
。执行
.exe
文件的命令 -输出将是 -
反编译可执行文件的命令 -
反编译后的代码信息保存在新生成的文件中
GoodDay.txt
Microsoft的官方.NET Core于 2016 年问世。它是开源软件,支持多种平台。甚至 Mono 现在也与 .NET Core 共享一些代码,因此在 2018 年几乎没有理由使用 Mono
直接去官网下载安装即可。如果您想从命令行安装,请访问在 Linux 上安装 .NET,特别是在 Ubuntu 上安装 .NET SDK 或 .NET 运行时。使用 apt 安装 SDK 和运行时
您也可以使用 snap 安装
截至 2021 年,真正的开源解决方案仍然是 Mono,可在其网站https://www.mono-project.com/上获得微软的实施不出所料地在 Linux 上运行不佳(缓慢、无响应)。这是意料之中的,因为微软长期以来一直是 Linux 及其免费、开源性质的克星。坚持使用 Mono,它仍在开发中且易于安装。在包含的链接上下载说明