让C#程序run anywhere 脱离.net Framework框架环境

摘要:
复制此目录并将其与C#程序放在一起。在环境中运行时。net框架未安装,请使用以下命令:FetionVM。exe路径/C#程序FetionVM。exe此文件可以在VMDotNet目录中找到,作为虚拟环境的加载器。将其放在与Feition相同的目录中。exe,并直接执行Feition.exe。网络框架,还有另一个角色。的指定版本中运行的net程序。net框架。

为了运行一个100K的C#程序,而安装100M多的.NET 框架。。。。。于是发现偷懒的方法多多,试验总结如下:

现成的工具有:

(1)Xenocode 的postbuidle或者vas

(2)Salamander .NET Linker .
(3)MaxToCode 作者以前做的 framework linker. 以及一些支持注册表模拟和文件模拟的打包工具molebox,thinstall等.
(1)好像是使用虚拟机环境来模拟框架需要的注册表信息和文件信息。Xenocode号称的生成native代码功能实际上就是指的这个功能。感觉兼容性不怎么好。
(2)是Remotesoft的一个产品,似乎没有可以下载的,但是其兼容性似乎很不错。移动的飞信软件就利用了它的核心。
(3)实际上是利用了 Remotesoft的内核文件,然后自己实现了一个loader。好像是使用的早期的内核文件,兼容性也不太好。
查阅资料,并按照资料的方法进行了试验,发现有一种方法很不错,记录下来,记录下来:

首先下载一个飞信,并安装起来。在安装目录中有一个VMDotNet 目录(默认安装的话,位置在C:\Program Files\China Mobile\Fetion下)。

把这个目录复制出来,放到自己的C#程序一起,当在没有安装.net框架的环境里运行时,用这个命令:

FetionVM.exe 路径/C#程序

FetionVM.exe这个文件在VMDotNet 目录里可以找到
这个是虚拟环境的loader。就是直接把你的 .Net 程序 作为命令行参数传递给 FetionVM.exe 就可以在这个虚拟环境中执行你的。net程序了。

可以自己写一个启动程序,首先检查是否安装了框架,如果有则可以直接运行。否则调用虚拟环境运行。

据资料记载:这个启动程序飞信也有,如果不想自己写就直接拿飞信安装目录中的 Feition.exe,但是这样的话你自己的.Net程序的名字必须叫 FeitionFX.exe 。把它和Feition.exe 放在同一目录下,直接执行 Feition.exe 即可。

另外,如果你对。Net程序使用了加密保护,需要注意一下,目前市面上的大部分。Net加密工具加密后的程序集不能在这个虚拟环境中运行的。

这个东西除了能实现脱离 。net框架运行外,还有另外一个作用让.net程序运行在指定版本的 .net 框架中(虽然机器上安装了.net框架,仍然可以让.net程序在这个虚拟框架下运行)。

往往要在别人机器上运行自己.net的程序,还要一再和别人解释为什么运行之前还要在他的电脑上安装一个100M多的大家伙,现在终于可以摆脱这种尴尬了!

免责声明:内容来源于网络,仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Asp.net2.0 VS 2005下的repeater控件本功能分页实例(共有 条记录 共有几页 当前第 页 首页,上一页,下一页,尾页 DropDownList跳转)自学PHP 环境搭建下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Winform开发框架的重要特性总结

Winform开发框架的重要特性总结 从事Winform开发框架的研究和推广,也做了有几个年头了,从最初的项目雏形到目前各种重要特性的加入完善,是经过了很多项目的总结归纳和升华,有些则是根据客户需要或者应用前景的需要进行的完善,整个Winform开发框架具有很好的通用性和借鉴性,本文从该Winform开发框架进行概括总结,力求把各个重要的特性进行一些详细的...

无源码情况下直接修改jar里内容思路

当我们反编译的jar包里class被混淆过,这时反编译出来的java文件会有各种奇葩的问题,不能直接用,比如某框架需要注册码,这个时候我们只能通过层层反编译将验证码相关的部分绕过,如果这个代码不是那么直接,我们就需要借助一些工具来达成了,直接编译class文件。 这里给出一个文章:http://blog.csdn.net/hexin373/article/...

C# WINFORM 编程中,选择**文件夹**而不是文件的方法(转)

 我们选择文件可以用 OpenFileDialog ,但是文件夹有两种方法。 法一:    用C#的FolderNameEditor类的子类FolderBrowser类来实现获取浏览文件夹对话框的功能。下面来看看具体是怎么实现的。  首先新建一个winform的项目,再新建一个类文件(File->AddNewItem->Class)。 因为Fo...

Django REST framework 中文文档

Django REST framework介绍 现在前后端分离的架构设计越来越流行,业界甚至出现了API优先的趋势。 显然API开发已经成为后端程序员的必备技能了,那作为Python程序员特别是把Django作为自己主要的开发框架的程序员,我十分推荐Django REST framework(DRF)这个API框架。   Django REST frame...

SpringBoot框架:快速入门搭建运行一个应用程序(一)

一、环境配置 Java环境:1.8版本 开发工具:IntelliJIDEA 二、简单应用 1、创建项目 选择创建的项目类型为Spring Initializr,Project SDK选择1.8版本的java: 选择java版本为8,作为一个入门的简单应用,暂时无需配置其他的项,直接Next即可: 勾选Web中的Spring Web选项,点击Next:...

jqMobi 更小更快的移动框架

什么是jqMobi JqMobi   != JqueryMobileJqMobi是针对 移动设备开发的javascript框架,在2013年2月22日被 英特尔(intel)公司收购 改名为appframework jqMobi是由appMobi针对HTML5浏览器和移动设备开发的javascript框架,是个极其快速的查询选择库,支持W3C查询。官方网址...