• 使用飞信框架(Remotesoft DOTNET Linker)使.net程序脱离.net框架运行


    .Net 框架目前逐步在普及了,仍然有很多人在寻找如何让.NET程序脱离.NET框架的方法。

    现成的工具有 Xenocode 的postbuidle或者vas,还有 Salamander .NET Linker .
    另外还有 MaxToCode 作者以前做的 framework linker. 以及一些支持注册表模拟和文件模拟的打包工具molebox,thinstall等.

    Xenocode的是使用了一个虚拟机环境,模拟框架需要的 注册表信息和文件信息.
    Xenocode号称的生成native代码功能实际上就是指的这个功能.

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

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

    请首先在文章末尾下载测试程序,是一个用C#做的串口工具,下载解压后有两个文件夹(FrameWork和APP)和一个程序(串口工具.exe),在APP文件夹下有一个名为9527.exe的程序,这个是C#真正的“串口工具.exe”,而主目录下的串口工具.exe只是一个Loader程序,它运行后首先判断电脑上有没有安装framework,若有,则直接启动APP下的9527.exe程序;若无,则通过framework虚拟机(FrameWork下的VM.exe(其实是飞信框架里的FetionVM.exe,修改了它的图标和版权,想改成其它的大家可以用VC改一下,有网友强列要求指出这一点,想不明白为什么,呵呵,让指出就指出吧,还要求指出调用的方法,,其实我连源程序都公布了,用说的这么明白吗))启动9527.exe程序。Loader程序不会打开任何窗口,并在启动真正应用程序后立即退出。Loader程序主函数(VC6.0编写)的代码如下:
         主函数:

     

    C++代码
    1. int APIENTRY WinMain(HINSTANCE hInstance,   
    2.                      HINSTANCE hPrevInstance,   
    3.                      LPSTR     lpCmdLine,   
    4.                      int       nCmdShow)   
    5. {   
    6.     TCHAR fwVersion[VERSION];   
    7.     if(CheckRegistryKeyExistance(fwVersion))   
    8.     {   
    9.         if(CompareFWVersions(fwVersion, "2.0"))//最低版本要求2.0   
    10.         {          
    11.             RunApplication(".\\app\\9527.exe");//直接运行   
    12.         }   
    13.         else  
    14.         {      
    15.             //应用程序放在APP目录下,要启动的程序的名字为9527.exe,   
    16.             //9527周星弛在《唐伯虎点秋香》的代号,呵   
    17.             RunApplication(".\\FrameWork\\VM.exe \".\\app\\9527.exe\"");//通过虚拟机运行   
    18.         }   
    19.     }   
    20.     else  
    21.     {   
    22.         RunApplication(".\\FrameWork\\VM.exe \".\\app\\9527.exe\"");//通过虚拟机运行   
    23.           
    24.     }   
    25.      return 0;   
    26. }  

     

    判断是否安装的代码就不贴出来了,可以在文章末尾下载整个VC6的工程文件看。

    下面总结一下如何使用:
    1. 下载我的例子程序
    2. 清空APP下的所有文件
    3. 把你自已的.net可执行程序和相关文件全部复制到APP下,并将可执行程序的名字改为9527.exe (不喜欢这个名字可以修改Loader程序重新编译)
    4. 把主目录的“串口工具.exe"名字改成任何你想要的名字。(要改图标的话,建议下载我的Loader源程序,修改后重新编译)

    大功告成,拿到一台没装.net的电脑上试试吧。祝好运。 

    附:下载地址,文件比较大,我就不放在我的博客上了,请使用迅雷下载。

    Loader程序源代码 
    https://files.cnblogs.com/zhouyabo/vmloader.rar


    测试程序 
    https://files.cnblogs.com/zhouyabo/fw_vm_test.rar  

  • 相关阅读:
    13-计算属性和侦听器
    12-指令系统介绍
    11-vue的使用
    10-vue的介绍
    09-babel
    08-webpack的介绍
    07-nodejs中npm的使用
    06-Nodejs介绍
    05-面向对象
    Docker结合Jenkins构建持续集成环境
  • 原文地址:https://www.cnblogs.com/chinatefl/p/1445941.html
Copyright © 2020-2023  润新知