张银的博客


Eat to live, but do not live to eat.

导航

  .NET 开发效率高, 大行其道. 但却一直存在一个比较头疼的通病, 需要安装 .NET Framework, 尤其是.NET 2.0开发的软件.
Windows XP 和 Windows 2003 默认都没有.NET 2.0 运行环境. 特别是一些精简版, 连.NET2.0都装不上.
现在我们利用移动飞信的原理, 来解决以上的问题.

  1. 安装完移动飞信2008后, 一般我们在 C:\Program Files\China Mobile\Fetion\ 目录里可以看到今天关键的主角:Fetion.exe
启动飞信时首先会先运行 Fetion.exe , 用来检测本机是否有.NET环境, 如果有则运行FetionFx.exe, 如果没有则调用VMDotNet这个文件夹里的虚拟环境(v2.0.50727\FetionVM.exe)来处理.
FetionFx.exe 飞信真正的主程序, 需要.NET 2.0环境.
VMDotNet文件夹里有.NET2.0虚拟运行环境, 支持的版本为2.0.50727.

  2. 方法一:我们来看一个简单的实例: 在一个没有安装过.NET 2.0的系统里, 把VMDotNet整个文件夹复制到D盘, 再复制一个你自己编写的.NET程序, 比如Test.exe, 放在D盘. 然后在开始菜单里的"运行"输入以下命令:
D:\\VMDotNet\v2.0.50727\FetionVM.exe D:\\Test.exe(我也没试过,我用的是下面的方法)
你会发现神奇的事情出现了, Test.exe正常运行.

  3. 方法二:你开始会有疑问了, 我如何像飞信那样直接运行, 而不是通过命令行呢?
1) 利用Fetion.exe来加载, 那样的话, 就需要把你自己的主程序改名为FetionFx.exe,运行时点击Fetion.exe
这样你的目标文件就有Fetion.exe文件、VMDotNet文件夹、FetionFx.exe文件(前两个是移动飞信那里复制过来的,后面一个是自己的EXE文件改名为FetionFx.exe)
2) 补充:可以自己编写一个Win32程序来处理加载过程(这样的话就不需要Fetion.exe文件了,也不需要修改自己的EXE程序的文件名了)。// unmanaged C++,我也不知道怎么编写代码。

  4. 说明:对我们有用的东西是Fetion.exe文件,VMDotNet文件夹,FetionFx.exe这个文件名,保存了这些,飞信程序也是可以删掉了.

移动飞信2008,比较老了,网上自己找。