使用飛信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 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集成進去,但現在我們不用了,請大家把相應的選項全部去掉,還不會使用VS2005安裝和部署功能的朋友請到此網址去看一下。http://www.vs2005.com/Setup/205/1/default.aspx

我們把PicProcessor和PicStart項目都添加進新建的安裝和部署項目Setup中來,把程序啓動的快捷方式全部設爲 PicStart.exe就可以了,具體的操作方法在上面的鏈接裏有。然後開始生成安裝包,生成的安裝包如果選擇大小優先的話,VMDotNet會佔用大 概10Mb左右的空間,然後加上你程序的大小就是這個安裝文件的大小了,比以前20多MB的.Net Framework小多了,而且安裝速度也要快的多,這樣程序在沒有.Net Framework的機器上也能運行了,大家都試試吧,有什麼問題可以給我留言。每天晚上一般我都會上線,會及時給大家回覆的!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章