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

qq_39033657 2017-11-25 11:02:21
先说下我遇着的问题:
我开发环境是vs2017,程序编译是在本机64位上生成.exe的,并且生成项目平台是Any CPU,目标框架是.NET framework 4.0的;
按道理生成的.exe都兼容32位或64位的操作系统,但现在是在32位操作系统上打不开,报失效问题;现在我能解决只有根据操作系统去生成相应位数.exe文件;
总结下就是要编译两次不同位数的.exe文件;
现在想请问下各位大神有没有只编译一次就可以跨系统的运行?
...全文
509 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39033657 2017-11-28
  • 打赏
  • 举报
回复
谢谢各位的回复,提这个问题的目的是想“一次生成,到处使用的效果”;因为网上一堆资料说Any CPU下可以达到目的,结果。。。。。。。
threenewbee 2017-11-26
  • 打赏
  • 举报
回复
不可能啊,你用到第三方库没有。
  • 打赏
  • 举报
回复
平台问题,总要知道是哪一个DLL有这个问题,都是具体问题。没有什么标题党编程方案啊。
  • 打赏
  • 举报
回复
什么叫做“报失效问题”?
xian_wwq 2017-11-26
  • 打赏
  • 举报
回复
代码完成了, 编译x86和x64两个版本的工作量并不大
全栈极简 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编译就行。

111,079

社区成员

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

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

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