c#做的Winform程序如何在不安装Framework的情况下运行?

如题所述

让.Net程序脱离.net framework框架运行
Net框架目前逐步在普及了,仍然有很多人在寻找如何让.NET程序脱离.NET框架的方法。现成的工具有Xenocode 的postbuidle或者vas,还有Salamander .NET Linker。另外还有MaxToCode 作者以前做的framework linker,以及一些支持注册表模拟和文件模拟的打包工具molebox,thinstall等。

Xenocode的是使用了一个虚拟机环境,模拟框架需要的注册表信息和文件信息。Xenocode号称的生成native代码功能实际上就是指的这个功能。我测试了几个程序打包,兼容性似乎不怎么好,不知道是不是因为机器上已经安装了框架的原因。

Jason做的framework linker以前我也使用过,他实际上是利用了Remotesoft的内核文件,然后自己实现了一个loader。好像是使用的早期的内核文件,兼容性也不太好。

Salamander .Net Linker ,Remotesoft的一个产品,没有可以下载的,但是其兼容性似乎很不错。移动的飞信软件就利用了它的核心。某网友的方法似乎是利用remotesoft的核心和飞信的框架,因为他并没有免费公开方法,从他给出的样例可以看到有remotesoft的核心文件以及飞信的框架程序。这里要介绍的方法是直接利用飞信的框架来实现脱离 .Net framework运行。

首先下载一个飞信的程序安装,在安装目录中会有VMDotNet 目录,这个就是.Net框架虚拟环境需要的文件,直接把整个目录提取出来。

如何利用这个虚拟环境运行自己的 .Net 程序呢?很简单,一个命令行搞定。在 VMDotNet 目录里面会找到一个 FetionVM.exe ,这个是虚拟环境的loader。

使用方法:

FetionVM.exe pathtoyoureexe。就是直接把你的 .Net 程序作为命令行参数传递给FetionVM.exe 就可以在这个虚拟环境中执行你的.net程序了。

最好再自己写一个启动程序,首先检查系统是否安装了.Net框架,如果有直接运行,没有调用虚拟环境运行。

这个启动程序飞信也有,如果不想自己写就直接拿飞信安装目录中的 Feition.exe,但是这样的话你自己的.Net程序的名字必须叫 FeitionFX.exe 。把它和Feition.exe 放在同一目录下,直接执行 Feition.exe 即可。另外,如果你对.Net程序使用了加密保护,需要注意一下,目前市面上的大部分.Net加密工具加密后的程序集不能在这个虚拟环境中运行的。

这个东西除了能实现脱离 .net框架运行外,还有另外一个副作用——让.net程序运行在指定版本的.net框架中(虽然机器上安装了.net框架,仍然可以让.net程序在这个虚拟框架下运行)。

参考资料:网上搜索所得

温馨提示:内容为网友见解,仅供参考
第1个回答  2007-09-23
用VS2005自带的打包工具就行,生成的安装文件在安装时会自动检测是否需要.Net框架
第2个回答  2007-09-24
这个好象是不太可能啊

c#做的Winform程序如何在不安装Framework的情况下运行?
这里要介绍的方法是直接利用飞信的框架来实现脱离nbsp;.Netnbsp;framework运行。nbsp;nbsp;首先下载一个飞信的程序安装,在安装目录中会有VMDotNetnbsp;目录,这个就是.Net框架虚拟环境需要的文件,直接把整个目录提取出来。

c#做的Winform程序开发IE浏览器如何在不安装Framework的情况下运行?
微软官方没有提供.net开发的程序在不安装.net framework的机器上运行的方法。因为.net程序依赖于.net framework运行时,微软对这个运行时是非常谨慎的,不停地提供安全更新等服务,如果你选择了像飞信那样的“非官方”方案,你集成在你应用程序里面的运行时如果发现有安全危险,微软是没有办法帮你最更新的。

C#编写的WinForm窗体程序,如何打包在使用时不需要安装,直接运行exe就...
不需要安装,直接双击打开这个是可以做到的,你写的时候就直接做成一个项目,把要用的类都定义到里面,不单独生成DLL文件,修改并编译成功后直接把Debug目录下项目对应的那个exe文件拷贝到别的机器上都能正确运行的,完全不需要安装。但是,.Net Framework这个是必须要有的,因为你的程序就是在这个环境中...

C#WINFORM程序怎么实现免安装运行
在VS中找到你的winform所在的项目,然后编译运行,如果通过了。那么右键该项目,在资源管理器中查看,在打开的窗口中,找到Bin文件夹, 里面会有两个文件夹 Debug 和Release 对应你VS中编译的方式, (如果你使用Debug生成的 ,就去Debug文件夹找,反之是Release)这个文件夹整个拷贝出来, 就可以直接运行...

用C#.NET写的软件一定要在有装framework的机子上才能运行吗
一定要在装有.net framework的机子上才可以运行,而且版本要匹配,1.1版本的的程序不能在2.0版本的.net framework上运行.因为.NET在编译时会将高级语言先转换成中间代码,再由CLR转换成机器代码才可以被机器识别.

C# .net4.5 winform程序 怎么在没有net环境运行?
如果你是指在非Windows平台运行,那winform是达不到的,因为.net framework是不能跨平台的;但是现在微软新出一个跨平台的开源框架.net core;此框架可以保证基于此框架的.net 程序可以在所有操作系统上运行 但是这个框架也不能运行winform程序,你只能用.net语法在.net core上重新实现你的功能才能跨平台...

winform 部署打包项目怎么让它不需要Framework的支持?
C 语言, C++语言 是可以编译成 汇编语言(直接控制硬件)的——就不需要 Framework 支持,而 C# 和 VS 开发工具开发的程序, 是编译成 中间代码的。这个中间代码是 依赖 .NET 平台 运行的,也就是说,没有 Framework。就不可能运行 这个程序的。如果你有时间,可以查哈 “C#程序可否...

C#中的exe能不能在不安装.net framework的环境里使用
winform和wpf是要在.NET framework中运行的,因为它们调用的是.Net framwork提供的API 而且它们只能在windows下运行,因为只有windows下才有.NET Framework 微软开发了一种新的RunningTime--.NET Core,.NET Core是完全跨平台的运行时,因为它是基于操作系统底层的,基于.NET Core开发的程序是跨平台的,...

C#开发的软件安装前必须安装。netFramework吗?
一、借用工具,不安装.net framework 2.0 这种方式有两种普遍使用的方法,借用飞信的虚拟.net环境和使用MONO启动程序。1、使用飞信虚拟机的方式。下载飞信安装文件http:\/\/www.skycn.com\/down.php?uri=http:\/\/skycn.gjwww.com:82\/down\/Fetion2008_skycn.zip,安装成功后,在安装目录下:China Mobile\\...

C# winform 客户端 是否需要.net framkwork
一般都是需要的,因为在你的客户端里有很多东西需要 .net framework 所集成的内容的支持才能运行,而Windows不同版本的操作系统默认安装了不同版本的 framework,这可以在注册表中查看到,所以有很多时候你会感觉到并没有单独去安装 .net framework 却也可以运行 winform 客户端。--- Sorry,我忽略了一...

相似回答