`

让C#程序独立运行(脱离 .NET Framework运行,绿色运行)

阅读更多

作者:小生、我怕怕

网址:http://www.apkbank.net

 http://www.17zouguo.net

我觉的MS的.net方案其实很不错。C#呢,用现在流行的话来说“很给力”!

但是.net版本众多。而且.NET Framework框架很大。拖着一个大大的.net Framework总是让人很郁闷。

我也碰到了这个让人郁闷的问题。

在网上找呀找呀。找到另一个.NET Framework 替代方案。Mono。

下载地址为:http://www.go-mono.com/mono-downloads/download.html

Mono2.10.2版本支持.net 2.0至4.0版本。

下载回来后安装一下,我傻了居然有336M。而且Mono的居然方式是命令行的。仍然让人很郁闷。

算了,既然安装了。找找资料吧。

终于看到了前人的工作结晶。

Mono运行C#程序所要的库资源其实不多。

 

只要C:\Program Files\Mono-2.10.2\bin目录下的。(以下均以C:\Program Files\Mono-2.10.2目录为根目录)

mono.exe,mono-2.0.dll

lib\mono\.net版本号\mscorlib.dll。我这里用的是.net 2.0版本。

lib\mono\gac\目录下的必要库文件。WinForm程序只要这5个库就行了。

 

每个库文件下,又有自己的.net版本号。如果用的是.net 2.0那么4.0.0.0那个目录就可以删除,如果你想问为什么没有3.0、3.5的库。答案是3.0和3.5用的是2.0的库。而1.0的库由于年代久远,Mono2已经不支持了。如果需要的话,可以下载Mono早期的版本。

另外我发现库文件下,有同名的.mdb文件。

 

那个.mdb文件删除掉对程序没什么影响。所以通通删除掉。

 经过层层删除,最后剩下的那几个文件,加起来也就8M多点。而程序一点问题也没有。完美运行!

 

发行软件的时候用RAR压缩一下,程序只有3M多。很完美了!

可是我怎么知道。。我的程序具体要用到哪些库呢?

答案是:不知道。去记程序要用到哪些库太累了。我才不会去记呢。我有一个偷懒的办法。新建一个文件夹,先将不变的文件放好。bin目录下的mono.exe,mono-2.0.dll,lib\mono\.net版本号\mscorlib.dll。最后将Mono下lib\mono\gac中所有的库文件拷贝过来。运行编译好的C#程序。现在可以开始疯狂的删除了,碰到不能删除的文件,剩下的就是我们的程序要用的库了。此方法简单高效,百试不爽。

 

但是接下来还有个问题,Mono那个讨厌的命令行。还有如果人家电脑上装了.net库呢?用MS自家的.net不是更好么?于是我参考Mono官网,用C和windows api写了一个.net的引导程序。可以根据用设定来选择.net版本,如果客户电脑已经安装用户指定版本,则优先使用MS的.net,如果不存在则用Mono引导程序。

这个引导程序使用config.ini做为配置文件。

 

C#_Version=2.0                    //.net版本号,共有4个值:2.0、3.5、4.0C、4.0F

C#_AppName=MyBooks.exe   //预启动的应用程序名称

这个引导程序,在32位XP下使用VS 2008编译。因为是用windows api编写,没有额外的库。所以理论上32位的系统应当都能使用,64位的没试过。这个引导程序测试.net 2.0项目和.net 4.0项目都没问题。这个程序直接调用了mono-2.0.dll。所以Mono.exe也就没用了。下面给出我的测试项目,直接运行monologin.exe即可。效果我还是很满意的。同时欢迎交流!

附件下载:
c#引导项目.rar 3.17MB

 

  • 大小: 5.9 KB
  • 大小: 4.6 KB
  • 大小: 6.3 KB
  • 大小: 7.5 KB
  • 大小: 6.9 KB
  • 大小: 7.3 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    C#程序脱离.Net framework运行

    标题中的"C#程序脱离.Net framework运行"涉及到一个关键的技术概念,即.NET Core或.NET 5及以上版本的跨平台能力。传统的C#程序依赖于特定版本的.NET Framework运行时环境,这个环境只在Windows系统上可用。然而,...

    C#使用飞信虚拟机脱离.net framework及win32引导程序

    标题中的"C#使用飞信虚拟机脱离.net framework及win32引导程序"是一个技术实践,旨在探讨如何在不依赖.NET Framework和传统的Win32启动程序的情况下,利用C#语言和飞信虚拟机来运行应用程序。这涉及到对C#语言深入的...

    C#虚拟机-脱离.NET框架运行exe

    然而,“C#虚拟机-脱离.NET框架运行exe”这个主题探讨的是如何在没有.NET Framework的情况下运行C#程序,这涉及到一个名为CoreCLR的组件,它是.NET Core的一部分。 .NET Core是微软推出的一个开源、跨平台的开发...

    不用.netframework运行.net程序 源码示例

    3. **运行**:这里是指执行.NET程序的过程,通常需要.NET Framework的支持,但在.NET Core或Mono环境下,可以脱离这个依赖。 4. **源码**:指的是程序的原始代码,可以被开发者阅读、理解和修改。在这个示例中,...

    C#脱离.NET环境,飞信虚拟机,.net framework 2.0

    标题中的"C#脱离.NET环境,飞信虚拟机,.net framework 2.0"暗示了我们正在探讨如何在不依赖传统的.NET Framework 2.0环境下使用C#编程语言,以及可能涉及的飞信虚拟机技术。这个话题对于理解C#语言的可移植性和.NET...

    C#虚拟机(可以脱离.net框架运行C#程序)

    刚学C#时就一直想找到一种方法可以让.Net程序在未安装framework的电脑上运行,但一直没有找到真正可用的。虽然有些公司发布了可以将.net代码编译成navtive代码以脱离.net环境运行,如Remotesoft DOTNET Linker,...

    C#脱离.net

    标题“C#脱离.NET”指的是使用C#编程语言编写的程序不再依赖于.NET Framework即可运行的能力。这通常通过使用.NET Core或.NET 5及更高版本实现,这些版本是跨平台的,并且可以在不安装完整.NET Framework的环境中...

    MONO实现.NET程序脱离框架

    描述“MONO实现.NET程序脱离框架运行”进一步强调了Mono的核心功能,即让.NET应用在没有原生.NET Framework的环境中运行。这通常涉及到将.NET应用程序与Mono运行时一起打包,以便在目标平台上自包含地启动和执行。 ...

    C#脱离.NET环境

    这里要介绍的方法是直接利用飞信的框架来实现脱离 .Net framework运行。 首先下载一个飞信的程序安装。在安装目录中会有 VMDotNet 目录。这个就是.Net框架虚拟环境需要的文件。 直接把整个目录提取出来。 如何利用...

    c#脱离framework运行教程

    从四年前刚学C#时就一直想找到一种方法可以让.Net程序在未安装framework的电脑上运行,但一直没有找到真正可用的。虽然有些公司发布了可以将.net代码编译成navtive代码以脱离.net环境运行,如Remotesoft DOTNET ...

    精简版.net framework2.0 (9.7M)

    收藏精品 C#开发的程序都需要他支持 C#写的程序 脱离.net framework 运行

    .net C#脱离环境运行程序

    总之,.NET C#脱离环境运行程序通过Mono实现,它让C#开发者可以跨平台开发和运行应用程序,扩展了.NET生态系统的边界。对于想要在非Windows系统上部署和运行C#应用的开发者来说,Mono是一个不可或缺的工具。

    .NET 2.0虚拟框架 可以让你的程序脱离.NET平台

    .NET 2.0虚拟框架是微软为.NET Framework 2.0版本开发的一种技术,它允许开发者创建的应用程序在不依赖特定版本或安装完整.NET Framework的情况下运行。这一特性极大地提升了应用程序的兼容性和便携性,使得用户可以...

    VMDotNet c#程序利用飞信虚拟环境脱离.net框架

    总的来说,VMDotNet是一种创新的技术,它让C#程序员能够编写出可以在多种环境下运行的程序,不再受限于.NET Framework。这极大地扩展了.NET应用程序的适用范围,特别是在那些对跨平台有需求或者对.NET Framework安装...

    在没有FrameWork的环境中运行.NET程序

    为了让.Net程序脱离.Net Framework框架运行我试了很多方法,网上说的基本都试过了,最效果都不太理想,最后我还是选择了现在比较流行的软件飞信中带的VMDotNet,也就是所谓的.NET FRAMEWORK虚拟机吧。相信有很多人也...

    c# .net脱离环境

    标题中的“C# .NET 脱离环境”是指一种技术解决方案,允许C#和.NET Framework应用程序在没有安装完整.NET Framework环境的计算机上运行。这种技术通常涉及到将所需的.NET运行时组件与应用程序一起打包,以确保程序...

    AspNet程序运行助手(脱离IIS运行工具)

    2. **独立运行**:对于不拥有IIS服务器或者在非Windows环境下工作的开发者,这个工具提供了可能,让他们可以在本地计算机上运行和测试ASP.NET应用。 3. **资源节省**:不依赖IIS,可以减少系统资源的占用,特别是...

    mono脱离.NET框架实例

    脱离.NET Framework的开发意味着你可以创建在不同操作系统上运行的应用,而不仅仅是Windows。这对于跨平台开发非常有用,比如开发针对Linux服务器的应用或iOS/Android的移动应用。同时,由于不再依赖于特定的运行时...

    飞信虚拟机(支持使用Access数据库的C#程序)

    那个可以让你的程序脱离框架运行,已成功试验了。这里要介绍的方法是直接利用飞信的框架来实现脱离 .Net framework运行。 这里的方法可以直接利用飞信虚拟机,不需要再写代码直接可以运行你的C#程序。 二、飞信...

Global site tag (gtag.js) - Google Analytics