所有的.net程序都是必须在.net 框架下运行的。正如同所有的windows程序必须用windows系统才能打开一样。每一个程序都有起运行的环境。
网上很多exe不需要.net就可以运行的,不是c#写的,有可能使用的是更低层的语言编译器,比如c++写的(即使是早期c++,也是基于windows的框架下,需要用到一些windows的环境的,而且有些dll是自己写的,也需要安装程序的,除非你能确保你所安装的那台电脑拥有你所需要调用的dll,大多数的软件都会有安装程序,用于确保所有的环境适合),也有java写的,还有基于flash环境的air程序等等,总之每一个程序都有一定的运行环境。如果没有合适的环境一样不能运行。以flash为例,每台机器都有安装flash吗,也并不全是吧,比如我们刚刚重做了系统有可能就没有flash插件,需要安装flash插件之后才能看flash一样的道理。
另外有一个误区,装vs不等于装了.net框架,虽然vs安装之后会安装.net框架,但vs是编译器,而.net框架是一些dll的库文件。要理解库文件的概念,你还要从早期的c++时代开始说起,每一个程序都是无数的库文件的堆积。没有这些库帮着你将程序和计算机连接,计算机就无法执行你的命令。
解决方案:
1、利用安装程序:vs不是自带着打包程序吗,用那个打包程序把你的程序打包成一个安装程序,安装之后就可以了。当然了你不喜欢vs的界面,也有一些人开发了其他的打包程序,我们称第三方打包程序,这些程序中其中就有能满足你所说的一个exe文件就行了的那种。当然其原理不过是在运行的时候将所需的文件暂时加载到内存或者硬盘中的一个临时空间中,运行结束,自动释放空间。本质上是和安装程序是没差别的。
2、找到缺少的dll文件,复制到你的exe程序所在的文件夹下。自己手动找文件吧,.net框架根据你程序执行所需要的功能会需要各种dll库,这种手动方式是很不方便的,而且容易出错。另外一个.net框架本身程序也不大,推荐还是用vs自带的打包吧。
是这样的,这种错误是因为目标电脑上没有安装 .NET Framework组件造成的,你可以在目标软件上安装该组件,然后就可以使用了。通常,你写的程序是可以在Win7的电脑上运行的,原因就是你的win7默认是安装了该组件的,但是Windows Xp则没有,需要用户自行安装。
此exe非彼exe,你要是用vb6、c语言、c++编程,那exe一般可以直接运行,当然不排除也有少量电脑没有安装相应的支持库;
.net平台开发的exe虽然看起来一样,但是构造大大不同,你没有注意到哪exe的图标都不同吗?必须在目标电脑上安装了.net framework框架才行的。
补充一下楼上大牛的回答,SteupFactory,搜一下吧。希望能帮到你。
需要安装 .Net Framework
查看你在.Net Framework如个版本上写的程序,就安装哪个版本的 .Net Framework