转载:使用飞信VMDotNet使C#程序脱离.NET FRAMEWORK也能运行的一些心得

昨天晚上奋斗到两点,做完了一个图片处理软件 , 突然想到上次上网看到 C# 程序脱离 .NET FRAMEWORK 运行的文章 , 于是决定自己动手试一下
       之前看到有用别的方法来实现的,但我还是选择了现在比较流行的软件飞信中带的 VMDotNet ,也就是所谓的 .NET FRAMEWORK 虚拟机吧。相信有很多人也已经看过相关文章了,但是对于新手我还是再提一下,在你的飞信的安装目录下有一个 VMDotNet 文件夹,这 个就是我们要用的最主要的内容了,先把它 COPY 出来吧!

       下面先来简单说明一下 VMDotNet 文件夹吧,在这个文件夹之下有一个 v2.0.50727 文件夹,很明显是 .NET FRAMEWORK 的版本号啦,进入这个文件夹,里面有一个 FetionVM.exe 的可执行文件(飞信的图标),这个便是我们要用到的虚拟机文件了。其 它文件我们不用考虑。这个程序可以带入一个参数,即要在此虚拟环境下运行的程序的路径。形如 FetionVM.exe C:\1.exe ,也可以使用相对路径: FetionVM.exe 1.exe ,当然这样要求两者在同一目录下啦。这里顺便要再说一下 VMDotNet.log 这个文件,这里记录了在调用 FetionVM.exe 时的错误 信息,主要是路径不对,找不到对应的程序。在了解了这个文件夹之后,我们可以动手开始做啦!

       把这个文件夹复制到你的项目的 DEBUG 目录下,我的已有项目名为 PicProcessor ,生成的可执行文件为,当然你也可以视情况而定了,如果放别的地方就应该注意一下路径就好了。

       在这里我们需要再新建一个 C# 应用程序项目,我把它命名为 PicStart ,把 FORM1.CS 删除,或者直接新建一个控制台程序,在 Program.cs 中写入以下代码:

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace PicStart
{
    static class Program
    {
        ///
<summary>

        /// 应用程序的主入口点。
        ///
</summary>

      
[STAThread]

        static
voidMain()

        {
          
//
下面是调用外部程序的代码
          
System.Diagnostics.ProcessStartInfo Info = new
System.Diagnostics.ProcessStartInfo();

          
Info.FileName = "VMDotNet\\v2.0.50727\\FetionVM.exe"; //
这里是你要调用到的外部程序
          
Info.Arguments = "PicProcessor.exe"; //
调用外部程序的参数,这里是图片处理项目的可执行文件,注意不是现在这个项目的可执行文件
          
System.Diagnostics.Process Proc;


          
try

          
{

              
//

              
//
启动外部程序
              
//

              
Proc = System.Diagnostics.Process.Start(Info);

          
}

          
catch (System.ComponentModel.Win32Exception e)

          
{

              
Console.WriteLine("
系统找不到指定的程序文件。 \r{0}", e);
              
return;

          
}

        }
    }
}

       在做完了这个项目以后我们生成此项目,这个时候我们就可以开始制作程序的安装文件了。

         以前我们利用 VS2005 做安装包的时候可以选择把 .NET FRAMEWORK 集成进去,但现在我们不用了,请大家把相应的选项全部去掉

我们把 PicProcessor PicStart 项目都添加进新建的安装和部署项目 Setup 中来,把程序启动的快捷方式全部设为 PicStart.exe 就可以了,具体的操作方法在上面的链接里有。然后开始生成安装包,生成的安装包如果选择大小优先的话, VMDotNet 会占用大 10Mb 左右的空间,然后加上你程序的大小就是这个安装文件的大小了,比以前 20 MB .Net Framework 小多了,而且安装速度也要快的多,这样程序在没有 .Net Framework 的机器上也能运行了
 
原文地址:http://new.qzone.qq.com/312004915/blog/1209988021

你可能感兴趣的:(.net,C#,飞信,休闲,VMDotNet)