当前位置: 首页 > 编程语言 > C#

如何使用Mono和mkbundle将一个简单的.Net控制台项目转换成可移植的exe?Share

时间:2023-04-10 16:14:20 C#

如何使用Mono和mkbundle将一个简单的.Net控制台项目转换为可移植的exe?我想将我简单的纯.Net2.0控制台实用程序转换成一个可移植的exe,我可以在USB记忆棒上运行,而不必担心特定机器上是否安装了CLR和框架库。Stackoverflow已经有一些关于使用Mono和Mkbundle从.Net项目创建独立的Windowsexe的信息,但我想要的是一个紧凑但有用的HOWTO。从简单的C#VisualStudio项目实现可移植性的最少步骤是什么?我在这里找到了一个简单的方法,但是,由于我自己没有测试过,所以我不能保证结果。YMMV像往常一样。引用原始文章(按照原始文章中的线程):Mkbundle:将Mono与您的应用程序捆绑在一起您是否想过为什么需要安装.NETFramework或Mono来运行您的程序?好吧,如果您可以分发您的应用程序而不用唠叨客户安装其他框架,那会更方便,不是吗?我们在这儿。让我们将基于.NET的应用程序与Mono捆绑在一起,这样您就不需要安装Mono或.NET来运行它。准备环境首先需要安装最新的Mono和Cygwin。安装Mono非常简单,所以您不会搞砸任何事情。当您开始安装Cygwin时,转到完整视图,然后请包括4个附加包。它们是:gcc、mingw、mingw-zlib和zlib。现在你需要一个命令提示符。Mono和Cygwin都在桌面上创建了命令提示符的快捷方式,但您需要将它们合二为一。这是为我做的一批。如果您有另一个Mono版本,您可能需要更改此设置。代码:echoMonoversion2.4Build6echoPrepending'C:PROGRA~1Mono-2.4bin'toPATHPATH=C:PROGRA~1Mono-2.4bin;%PATH%chdirC:cygwinbinbash--login-i使用捆绑的Mono应用程序所以我们现在在命令提示符下,运行这个Cygwin模式。请注意,这不再是DOS提示符,“dir”将不再起作用。要列出文件,请使用linux命令“ls”。您正在浏览的文件夹如下所示。Arek是用户名。代码:C:\cygwinhomeArek使用资源管理器浏览到此文件夹。现在您将2个文件复制到此文件夹中。第一个是您的应用程序exe,第二个是您可以在Mono文件夹中找到的文件Mono.dll(2MB)。代码:C:\ProgramFilesMono-2.4bin由于某些原因,整个过程无法处理长文件名,因此请重命名您的应用程序exe。它应该符合这个旧的DOS8.3命名。让我们回到命令提示符。您只需要1个命令来捆绑您的应用程序,这里有一些解释。mkbundle是Monobundle中的一个程序-oBundled1.exe指定如何命名Mono-bundledexe,因为Winform1.exe解释了将包含的内容,并且无论如何都会包含Mono库-尽管我不确定它的作用,但必须使用-z来压缩输出exe很多:mkbundle-oBundled1.exeWinform1.exe--deps-z所以现在你有Bundled1.exe,它包含你自己的应用程序和Mono本身。您不应该需要Mono或.NET来运行它。请注意,它的大小为4MB或更大。捆绑的exe并不轻量级。以上就是C#学习教程:如何使用Mono和mkbundle把一个简单的.Netconsole工程转成可移植的exe?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: