飛信目錄下的那個虛擬機器,是可以運行別的.net程式,這篇文章有詳細的介紹 http://www.cnblogs.com/scottckt/archive/2007/12/14/995258.html
這篇文章給出了封裝一個.net程式的例子(我覺得樣本本身有些問題,自己把自己繞進去了,但是還是可以參考)http://blog.csdn.net/wlwqw/archive/2007/09/17/1788113.aspx
簡單來說,飛信VMDotNet目錄下的,FetionVM.exe 傳入一個.net程式路徑作為參數,將啟動一個獨立的虛擬機器運行程式
我簡單測試了一下,只要是.net程式飲用的dll檔案FetionVM.exe所在目錄的System目錄下存在,.net程式就可以通過FetionVM.exe運行,沒有版本之分
網上有許多.net 2.0程式的測試例子,我個人用了.net 3.5進行了測試,代碼如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FetionVM_3._5
{
class Program
{
static void Main(string[] args)
{
int[] a = { 1, 3, 5, 6, 7, 8, 9, 15 };
var v = from b in a where (b % 2 == 0) select b;
foreach (var vv in v)
{
Console.WriteLine(vv);
}
Console.ReadLine();
}
}
}
代碼產生的FetionVM-3.5.exe 放在D:\下
直接使用FetionVM.exe運行,在起目錄的VMDotNet.txt檔案中會記錄如下錯誤
[2008/4/6 0:18:10] 運行程式 d:\FetionVM-3.5.exe 出現錯誤!
之後將,System.Xml.Linq.dll System.Core.dll System.Data.DataSetExtensions.dll複製到System目錄下,程式正常運行
理論上通過這個辦法應該是可以運行所有.net程式的,明天試試看能不能正常運行WCF宿主程式