c# 开发的winform软件 怎么样使其只能在xp系统下运行

如题所述

第1个回答  2011-04-02
.NET CLR托管代码,还是要开发本机代码?
我主要是以64位Win7 + Visual Studio 2008为平台来开发本机代码,并部署在32位XP/2003/Vista下。

1)如果是基于.NET平台,那就非常简单了,只要编译配置选项为x86,在客户机上部署,只需要有对应的.NET运行库就行,不存在兼容性问题。因为MSIL代码要由JIT编译器实时映射为机器代码。如果是本机代码,就有点麻烦,除了要确保编译配置选项为Win32,还牵扯到Unicode与ASCII库、各种Run-Time库,真是!@#$%^&

2)第二个问题就是纯粹的硬件配置问题了。有时为了彻底解决兼容问题,我在64位Win7下装了XP+VC6虚拟机。我用的是ThinkPad本本,还是很令我满意的。内存越大越好,如果是固态硬盘会更好,只是钞票…… 囧~

3)第三个问题和以一个问题差不多,咱们程序员应该都明白,100%是没人敢“保证”的。就好像不可能没有Bug,只是你没发现Bug而已。但如果基于.NET,事情会好办得多,.NET是不存在“平台输出”概念的,因为它本身与平台无关。至于本机代码,很麻烦,很痛苦的……

4)综上所述,由于使用64位Win7并没有明显的优势,故我觉得你暂时没有必要换64位Win7,除非你想像我一样调试来调试去,汗~

5)有时,你满怀信心的把编译好的MFC程序copy到客户机上,却跳出个错误对话框,那心情…… 但如果是.NET,就不存在这个问题了。

以上是我的实际经验,虽然是90后程序员,汗~
希望能对你有所帮助。
另外,站长团上有产品团购,便宜有保证
第2个回答  2011-03-19
貌似只能在你程序内部限制,每个操作系统都有自己的版本号,对比版本号,排除其他操作系统追问

怎么对比,请详细点!

追答

Environment.Version
可以获得操作系统的版本信息 类似于5.2.3.201
比对这个信息

追问

我该在app.config配置文件里怎么样比对!请大虾明示!谢谢

追答

Environment.Version
是.net提供的一个获取操作系统版本的方法
还有其他的获取名称等方法
就在system命名空间下

看下参考文章,可能有帮助

参考资料:http://www.abc188.com/info/html/chengxusheji/C-C--/20080224/13707.html

本回答被提问者和网友采纳
第3个回答  2011-03-19
这个要求有点好玩,我给你提几个思路:
1,程序运行一开始读取系统的信息,这样的话,别说只能在XP下了,就算只能在XP SP3下运行都没问题。
2,程序引用一个只有XP系统用的dll,那么其他系统也就不能用了。
3,总的思路就是,找出XP中特有的,不可复制的东西判断一下。
第4个回答  2011-03-24
你的思路挺怪的,别人都是想尽办法提高兼容性,你却朝相反的方向努力
一定接受IBM PS2的教训

c# 开发的winform软件 怎么样使其只能在xp系统下运行
1)如果是基于.NET平台,那就非常简单了,只要编译配置选项为x86,在客户机上部署,只需要有对应的.NET运行库就行,不存在兼容性问题。因为MSIL代码要由JIT编译器实时映射为机器代码。如果是本机代码,就有点麻烦,除了要确保编译配置选项为Win32,还牵扯到Unicode与ASCII库、各种Run-Time库,真是!@#$...

用C#写的winform程序为什么不能在别人的电脑上运行!
在你的项目,发布下有一个系统必备,选择与我的应用程序相同位置下载系统必备组件.选择之后你可以不用再担心别人的计算机是否安装了.net环境。

C# WinForm程序只能在本机运行???
你得把你的程序打包成安装程序,再在别人的电脑上安装才能用。你.\\bin\\Release文件夹中.exe文件需要访问你的程序文件的,直接运行这个是可能不成功的

C# .net4.5 winform程序 怎么在没有net环境运行?
所以你可以在程序打包发布时加上.net 4.5的安装包,这样就可以在所有Windows上运行了 如果你是指在非Windows平台运行,那winform是达不到的,因为.net framework是不能跨平台的;但是现在微软新出一个跨平台的开源框架.net core;此框架可以保证基于此框架的.net 程序可以在所有操作系统上运行 但是这个...

c#做的Winform程序如何在不安装Framework的情况下运行?
首先下载一个飞信的程序安装,在安装目录中会有VMDotNet 目录,这个就是.Net框架虚拟环境需要的文件,直接把整个目录提取出来。如何利用这个虚拟环境运行自己的 .Net 程序呢?很简单,一个命令行搞定。在 VMDotNet 目录里面会找到一个 FetionVM.exe ,这个是虚拟环境的loader。使用方法:FetionVM.exe pathto...

winform生成后的Release下面的程序在win7下面能运行,xp不能运行,具体提...
请用进程监视器(不是任务管理器)获取它所需要的所有动态链接库,把它们复制到WIN7系统启动目录下即可,如果产生重复文件的现象,请不要覆盖,转移到系统程序目录,在注册表里的SHAREDLL里为这些DLL注册。

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

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

C#编写的界面程序在别的电脑上运行不了
1,使用.net来开发的软件,在别的电脑上使用必须安装.net Framework软件架构上。2,如果还使用了其它的控件,组件等,同样也需要在别的电脑上安装,注册。3,建议把软件跟运行时需要的控件和相关文件及.Net framework一起打包或制作成一个安装包,在别的电脑上安装一下。

C#编译的winform程序.如何生成单独的EXE
建议用VS自带的安装向导或是其它打包程序创建安装文件包,这个包里是可以集成对应的.Net框架的,虽然最后生成的安装包要大一些,但是如果在安装时检测到目标计算机没有.Net环境的话它会自动先安装.Net之后再安装程序的,而且也不会发生缺少程序需要的动态链接库、资源文件等问题。另外,简单的程序用2.0,...

相似回答