.NET程序脱离.NET框架解决方法大全

开发 后端
本文介绍了让.NET程序脱离.NET框架的一些方法,比如使用Xenocode的postbuidle等工具。

脱离.NET框架现成的工具有 Xenocode 的postbuidle或者vas,还有 Salamander .NET Linker .

另外还有 MaxToCode 作者以前做的 framework linker. 以及一些支持注册表模拟和文件模拟的打包工具molebox,thinstall等.

最后还有某网友(应其要求隐去网名) 兜售的一个脱离.NET框架的实现方法.

Xenocode的是使用了一个虚拟机环境,模拟框架需要的 注册表信息和文件信息.

Xenocode号称的生成native代码功能实际上就是指的这个功能.

我测试了几个程序打包,兼容性似乎不怎么好. 不知道是不是因为机器上已经安装了框架的原因。

Jason做的 framework linker,以前我也使用过, 他的实际上是利用了 Remotesoft的内核文件,然后自己实现了一个loader。好像是使用的早期的内核文件,兼容性也不太好。

Salamander .Net Linker ,Remotesoft的一个产品,没有可以下载的,但是其兼容性似乎很不错。移动的飞信软件就利用了它的核心。

某网友的方法似乎是利用remotesoft的核心和飞信的框架,因为他并没有免费公开方法,从他给出的样例可以看到有remotesoft的核心文件以及飞信的框架程序。

这里要介绍的方法是直接利用飞信的框架来实现脱离 .Net framework运行。

首先下载一个飞信的程序安装。在安装目录中会有 VMDotNet 目录。这个就是.Net框架虚拟环境需要的文件。

直接把整个目录提取出来。

如何利用这个虚拟环境运行 自己的 .Net 程序呢?

很简单,一个命令行搞定。在 VMDotNet 目录里面会找到一个 FetionVM.exe 。这个是虚拟环境的loader。

使用方法: FetionVM.exe pathtoyoureexe

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

最好再自己写一个启动程序,首先检查系统是否安装了。Net框架,如果有直接运行。没有调用虚拟环境运行。

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

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

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

前面介绍了  让 .Net 程序 脱离.NET框架 运行的方法 ,

但是有些朋友应用中还是遇到了一些问题,主要时需要自己提取框架程序以及应用的dll问题。

这里介绍一个偷懒提取方式。

我们可以利用 Remotesoft linker的试用版来提取,试用版的获取

http://www.remotesoft.com/linker/try.html

试用版提取时可以用 mdeploy 方式或者 native 方式。

如果时 mdeploy 方式,比较简单,直接提取出来了基本能用了。

他提取的是你系统当前的 框架环境。也就是你安装了 .Net 3.0那么提取出来的核心文件也就是 3.0的。

提取完后会有一个 exe文件和 rsm 文件,你只需要用fetion框架里面的 fetionvm.exe替换这里生成的exe文件即可。

实际上这个文件是一个预先写好了的模板程序,自己可以修改一下资源属性,就OK了。

native 模式提取出来的虚拟框架目录结构和 fetion的那个一样的。

把文件复制到fetion的框架里面覆盖。

然后自己可以改改 fetionvm.srm文件,这个文件在前面已经还原出他的代码了。

这样就省去了自己提取dll文件的麻烦。

【编辑推荐】

  1. .NET框架中的可复用类库ESBasic
  2. .NET框架,该减减肥了
  3. .NET平台构成:操作系统,.NET框架到IDE
  4. .NET框架与COM:背景和历史,关系的发展
  5. .NET框架与XML:Web服务的未来之道
责任编辑:yangsai 来源: 网络转载
相关推荐

2009-08-26 15:10:34

脱离.net fram

2010-01-06 18:54:41

脱离.Net Fram

2010-01-19 18:37:24

VB.NET内存占用

2010-05-27 09:33:04

SVN冲突

2010-01-18 17:15:20

VB.NET参数类型不

2011-06-16 10:27:55

.NET内存泄漏

2009-07-30 13:42:28

ASP.NET报表问题ASP.NET

2009-10-29 10:04:57

VB.NET Read

2009-07-22 17:50:14

2010-01-08 14:22:00

VB.NET精度问题

2009-08-21 17:48:28

.NET框架DLL Hell问题

2009-10-12 10:04:53

VB.NET List

2009-08-06 17:25:07

.NET框架基本要求

2009-08-19 15:24:30

.NET命名规范

2009-11-13 11:04:46

宽带路由器故障

2009-12-16 10:42:04

.NET DB2

2009-11-05 15:23:30

无线网络常见故障

2011-09-19 19:21:54

linux

2009-07-24 13:20:44

MVC框架ASP.NET

2009-08-11 17:29:53

.NET远程处理框架
点赞
收藏

51CTO技术栈公众号