-->

如何简单的.NET控制台项目转换成便携的exe与单声道和mkbundle?(How to conve

2019-06-18 19:27发布

我想我的简单纯粹的.Net 2.0控制台程序转换成我可以只是把一个USB记忆棒和运行的便携式exe文件,而不必担心CLR和框架库是否安装在特定机器上还是不行。

计算器已经有一些信息,使用单声道和Mkbundle创建从.Net的项目自包含的Windows的EXE,但我想有一个小巧但有用的HOWTO。

什么是从一个简单的C#Visual Studio项目实现了便携性的最基本的步骤?

Answer 1:

我发现了一个简单的如何到了这里然而,因为我还没有测试它自己,我不能保证结果。 像往常一样,情况因人而异。

从原来的文章引用(请遵循原创文章线程以及虽然):

Mkbundle:与您的应用程序捆绑单

你有没有想过为什么你需要.NET Framework或单声道安装到运行程序? 那么,这将是更方便的,如果你能不唠叨你的客户安装额外的框架分发您的应用程序,是不是? 所以我们在这里。 让我们用捆绑单一个基于.NET的应用程序,所以你不需要单声道,或安装了.NET运行它。

准备环境

首先,你需要安装最新的单声道和Cygwin。 安装Mono是非常简单的,所以你不能搞砸任何事。 当您启动安装Cygwin,进入全面视图,那么请包括4个额外的软件包。 它们是:GCC,MinGW的,MinGW的-的zlib和zlib。

现在你需要一个命令提示符。 单声道和Cygwin的桌面上创建一个命令提示符快捷方式,但是你需要将它们合并成一个。 这里是一个批处理,做对我来说。 您可能需要改变它,如果你有其他单声道版本的例子。

码:

 echo Mono version 2.4 Build 6 echo Prepending 'C:\PROGRA~1\Mono-2.4\bin' to PATH PATH=C:\PROGRA~1\Mono-2.4\bin;%PATH% chdir C:\cygwin\bin bash --login -i 

捆绑使用Mono的应用

所以,我们现在在命令提示符,运行此Cygwin的模式。 请注意,这不是一个DOS提示了,而“目录”将不再工作。 要列出文件使用Linux命令“LS”。 你现在浏览的文件夹是类似下面。 Arek是一个用户名。 码:

 C:\cygwin\home\Arek 

浏览到该文件夹​​与您的浏览器。 现在你复制2个文件到该文件夹​​。 第一个是你的应用程序EXE和2是文件Mono.dll(2MB),你可以在你的单声道文件夹中找到。 码:

 C:\Program Files\Mono-2.4\bin 

出于某种原因,整个过程不使用长文件名的工作,所以重命名你的应用程序的EXE。 它应该符合这个老DOS 8.3的命名。

让我们再回到命令提示符。 你只需要1命令捆绑您的应用程序,这里是一些解释。

mkbundle是单包内的程序| -o Bundled1.exe指定单捆绑exe将如何命名| Winform1.exe所说的话将被列入,单库无论如何都会被列入| --deps是必要的,尽管我不知道它做什么| -z将压缩输出exe文件很多

码:

 mkbundle -o Bundled1.exe Winform1.exe --deps -z 

所以,现在你有你的Bundled1.exe,其中包含自己的应用程序与单本身一起。 你不应该需要单声道也不.NET运行它。 请注意,它会在大小4MB以上。 这些捆绑的前男友是不是轻量级的。



文章来源: How to convert a simple .Net console project a into portable exe with Mono and mkbundle?