读书人

欠安装.NET Framework 运行C#NET程序

发布时间: 2012-11-10 10:48:50 作者: rapoo

不安装.NET Framework 运行C#.NET程序
首先,要说明的是飞信也是用C#写的,但是我们在运行C#时,并不用安装.NET Framework,这事因为,飞信本身内置了一个.NET 虚拟程序,由这个程序来调用我们飞信主程序。

同样,我们要可以利用这可现成的虚拟机来运行我们的C#.NET程序,这样即使在没有安装.NETFramework的windows系统中,也可以运行我们的C#.NET程序。

具体方法如下,复制飞信下的文件夹VMDotNetv2.0.50727文件夹到你的C#.NET目录程序,该文件夹下有一个程序FetionVM.exe,我们就是要通过它,运行我么的C#主程序,起调用方法如下:

"FetionVM.exe C#程序路径"(不包括引号),然后,我们只要用CC++、VB、DELPHI等等windows下课直接运行的程序,写一个程序来调用该虚拟机来运行我们的C#.NET程序。

下面一delphi为例子:

首先,程序目录下虚拟机的文件夹名称为VM,该目录下有编写好的C#程序名为ACs.exe,delphi代码如下

unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs,registry;type  TForm1 = class(TForm)    procedure FormCreate(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);var  reg:tregistry;beginreg:=tregistry.Create;              reg.RootKey:=HKEY_LOCAL_MACHINE;if reg.KeyExists('SOFTWAREMicrosoft.NETFrameworkv2.0.50727') then     //通过注册表,判断系统是否安装有.NETFramework v2.0 如果有,直接运行C#程序,如果没有则通过虚拟机调用C#程序BEGIN  winexec('.VMACs.exe',SW_Show);ENDelse                                      //如果键值不存在 调用虚拟机begin  Form1.Visible := false;  winexec('.VMFetionVM.exe .VMACs.exe',SW_Show);end;reg.CloseKey;reg.free;ExitProcess(0);Application.Terminate;end;end.


//------------------------这样主程序编写完成

然后选择 project>view source 然后添加语句

Application.ShowMainForm:=false; //隐藏程序主窗体



然后生成程序

然后把delphi生产的exe程序放在程序目录下,运行即可直接调用我们的C#程序

读书人网 >C#

热点推荐