关于C#程序在WIN7 32位和64位环境下运行的条件

lovefromsun 2011-10-27 02:53:29
楼主自己写了个测试电路性能的小程序,之前是在XP环境下开发,现在碰到几个问题请大大们指导!

1.有很多朋友指出改软件不支持win7的64位系统,由于楼主也没有对应的环境,所以一直没有测试过。
2.偶有几个朋友说win7 32位系统也不能正常使用。


楼主分析了下原因
1. 程序应用了几个DLL,是否是DLL不兼容64位系统
2. 楼主发布程序的时候是 安装文件+.NET farmework2.0 一起打包发布的,是不是win7用户在装了.NET farmework2.0后导致程序不能正常使用
3. 和楼主的开发环境是否有关系,是选择Any CPU编译发布的

最后就是请教下大家有桌面应用开发经验的,一般在XP环境过度到Win7环境都需要做哪些设置!需要检查哪些东西?
不胜感激
...全文
750 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
okidasougo 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xx314250548 的回复:]
少说了,就是与你开发的.net框架有关,如你使用了vs2005,那么就要安装.net2.0框架,如果使用vs2008就得安装.net3.5,VS2010就得安装.net 4.0
[/Quote]
但是不是说.net是向下兼容的么,程序是VS2005开发的,有些时候客户不需要安装.net2.0框架也使用正常,有些时候还非得单独安装个.net2.0才可以用,奇怪的
xx314250548 2011-10-27
  • 打赏
  • 举报
回复
少说了,就是与你开发的.net框架有关,如你使用了vs2005,那么就要安装.net2.0框架,如果使用vs2008就得安装.net3.5,VS2010就得安装.net 4.0
xx314250548 2011-10-27
  • 打赏
  • 举报
回复
LZ 和我遇到的问题好相似哦。我是直接将.net 2.0打包在程序内部的,当时他们开发的时候用的VS2005。并且使用了maxtocode加过密只支持.net2.0比你的还让人头痛。不过一般只要不用加密软件.net不会出现兼容性问题
okidasougo 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xx314250548 的回复:]
之前我也遇到过这个问题,解决办法 将exe程序生为x86,同时你的DLL也得是X86下的生成。不然会出现调用DLL出错。与.net无关
[/Quote]
谢谢!正解!
okidasougo 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yuwenge 的回复:]
引用 4 楼 okidasougo 的回复:

引用 3 楼 yuwenge 的回复:
exe生成那里选x86.就会全部以32位运行,就不会出错。
如果不选,那么就要保证你的dll或者其他调用没有32位的。


选X86也能保证在64位系统上正常运行吗


[/Quote]

谢谢你,刚才在测试机上发布了X86的,果然在win7 64位系统正常运行!
可否再问一个问题,发布一个C#软件,需要把.net framework一起做个压缩包发布吗?还是让客户自己下载?几个版本的兼容问题真让人头疼
xx314250548 2011-10-27
  • 打赏
  • 举报
回复
之前我也遇到过这个问题,解决办法 将exe程序生为x86,同时你的DLL也得是X86下的生成。不然会出现调用DLL出错。与.net无关
卧_槽 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 okidasougo 的回复:]

引用 3 楼 yuwenge 的回复:
exe生成那里选x86.就会全部以32位运行,就不会出错。
如果不选,那么就要保证你的dll或者其他调用没有32位的。


选X86也能保证在64位系统上正常运行吗
[/Quote]
指间的风 2011-10-27
  • 打赏
  • 举报
回复
我估计是 framework 版本问题。
okidasougo 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yuwenge 的回复:]
exe生成那里选x86.就会全部以32位运行,就不会出错。
如果不选,那么就要保证你的dll或者其他调用没有32位的。
[/Quote]

选X86也能保证在64位系统上正常运行吗
卧_槽 2011-10-27
  • 打赏
  • 举报
回复
exe生成那里选x86.就会全部以32位运行,就不会出错。
如果不选,那么就要保证你的dll或者其他调用没有32位的。
okidasougo 2011-10-27
  • 打赏
  • 举报
回复
顶顶!同问
qq9361235 2011-10-27
  • 打赏
  • 举报
回复
一般不需要做什么设置的吧 你直接用.NET4.0发布软件 应该就可以的

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧