通过飞信附带的虚拟机,是可以在没有.net Framework的电脑上运行.net 3.5程序的
Posted on 2008-04-06 00:52 Xwen 阅读(8890) 评论(16) 编辑 收藏 举报
飞信目录下的那个虚拟机,是可以运行别的.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)
{
这篇文章给出了包装一个.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宿主程序