c#编译器生成的.exe运行平台的兼容性问题

qq_39033657 WEB前端  2017-11-25 11:02:21
先说下我遇着的问题:
我开发环境是vs2017,程序编译是在本机64位上生成.exe的,并且生成项目平台是Any CPU,目标框架是.NET framework 4.0的;
按道理生成的.exe都兼容32位或64位的操作系统,但现在是在32位操作系统上打不开,报失效问题;现在我能解决只有根据操作系统去生成相应位数.exe文件;
总结下就是要编译两次不同位数的.exe文件;
现在想请问下各位大神有没有只编译一次就可以跨系统的运行?
...全文
293 9 点赞 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
qq_39033657 2017-11-28
谢谢各位的回复,提这个问题的目的是想“一次生成,到处使用的效果”;因为网上一堆资料说Any CPU下可以达到目的,结果。。。。。。。
  • 打赏
  • 举报
回复
threenewbee 2017-11-26
不可能啊,你用到第三方库没有。
  • 打赏
  • 举报
回复
平台问题,总要知道是哪一个DLL有这个问题,都是具体问题。没有什么标题党编程方案啊。
  • 打赏
  • 举报
回复
什么叫做“报失效问题”?
  • 打赏
  • 举报
回复
xian_wwq 2017-11-26
代码完成了, 编译x86和x64两个版本的工作量并不大
  • 打赏
  • 举报
回复
guwei4037 2017-11-25
可以编译为x86,64位系统也可以支持32位程序运行。
  • 打赏
  • 举报
回复
xuzuning 2017-11-25
32位机器不能运行64位程序,因为缺少硬件支持 但能够运行准64位程序,因为他实际是32位程序,只是模拟了64位操作
  • 打赏
  • 举报
回复
可以在更改当前项目的属性

  • 打赏
  • 举报
回复
圣殿骑士18 2017-11-25
any cpu选项, 对于编译exe来说,你在64位系统下编译的,就是64位exe。你在32位系统下编译的,就是32位程序。 对于编译dll项目来说,以何种方式加载,取决于其加载它的exe是什么位的程序。 所以如2楼所说,用x86编译就行。
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2017-11-25 11:02
社区公告

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