zoukankan      html  css  js  c++  java
  • 使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 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 (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的机器上也能运行了,大家都试试吧,有什么问题可以给我留言。每天晚上一般我都会上线,会及时给大家回复的!

  • 相关阅读:
    网页加速的14条优化法则 网站开发与优化
    .NET在后置代码中输入JS提示语句(背景不会变白)
    C语言变量声明内存分配
    SQL Server Hosting Toolkit
    An established connection was aborted by the software in your host machine
    C语言程序设计 2009春季考试时间和地点
    C语言程序设计 函数递归调用示例
    让.Net 程序脱离.net framework框架运行
    C语言程序设计 答疑安排(2009春季 110周) 有变动
    软件测试技术,软件项目管理 实验时间安排 2009春季
  • 原文地址:https://www.cnblogs.com/bingyun84/p/1658344.html
Copyright © 2011-2022 走看看