| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2604 人关注过本帖
标题:使用飞信带的.net虚拟机vmdotnet精减.net安装文件包 (非托管运行)
只看楼主 加入收藏
Jacky_Athena
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-4-7
收藏
 问题点数:0 回复次数:3 
使用飞信带的.net虚拟机vmdotnet精减.net安装文件包 (非托管运行)
不敢独享,那出来让大家一起分享
发现飞信是用.net写的,但是其安装包才12M,而安装过程更是快,于是GG了一下相关的资料,以后做程序的时候可能会有用?
引用文章:
昨天晚上奋斗到两点,做完了一个图片处理软件,突然想到上次上网看到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 void Main()
        {
            //下面是调用外部程序的代码
            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 ( e)
            {
                Console.WriteLine("系统找不到指定的程序文件。\r{0}", e);
                return;
            }
        }
    }
}

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

         以前我们利用VS2005做安装包的时候可以选择把.NET FRAMEWORK集成进去,但现在我们不用了,请大家把相应的选项全部去掉,还不会使用VS2005安装和部署功能的朋友请到此网址去看一下。http://www.

         我们把PicProcessor和PicStart项目都添加进新建的安装和部署项目Setup中来,把程序启动的快捷方式全部设为 PicStart.exe就可以了,具体的操作方法在上面的链接里有。然后开始生成安装包,生成的安装包如果选择大小优先的话,VMDotNet会占用大 概10Mb左右的空间,然后加上你程序的大小就是这个安装文件的大小了,比以前20多MB的.Net Framework小多了,而且安装速度也要快的多,这样程序在没有.Net Framework的机器上也能运行了,大家都试试吧,有什么问题可以给我留言。每天晚上一般我都会上线,会及时给大家回复的!

    如果程序执行时,出现了FileNotFound的异常,,问题出现在VMDotNet文件夹中缺少相应的dll文件。对照vs 2005中的引用文件,把缺少的引用文件拷贝到VMDotNet相应文件夹中。以及拷贝System.Transactions.dll文件到System文件夹下。问题解决!
搜索更多相关主题的帖子: 虚拟机 vmdotnet 精减 文件 托管 
2008-09-18 14:11
Jacky_Athena
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-4-7
收藏
得分:0 
申精噢!!
2008-09-18 14:25
quanshui
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2004-11-17
收藏
得分:0 
这个真的有效吗
2008-09-21 18:41
guang
Rank: 4
来 自:广东深圳
等 级:贵宾
威 望:13
帖 子:1414
专家分:285
注 册:2006-4-3
收藏
得分:0 
有一点要明白,没有装.NET FRAMEWORK的话PicStart这个程序哪里能启动
如果你说的方法能行的话,那PicStart应该用delphi或其它不需要支持的语言编写

不相信未作牺牲竟先可拥有,只相信靠双手找到我的欲求!!
我的博客:http://liao5930.blog.
2008-09-23 13:22
快速回复:使用飞信带的.net虚拟机vmdotnet精减.net安装文件包 (非托管运行)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014812 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved