好的,这是我的设置。
我有一个c#app在所有32位Windows XP-Vista-7机器上都能正常运行。我已经有一个verisign PFX来支持ClickOnce部署,并使用Atalasoft DotTwain 8.0作为第三方扫描程序助手。
当我发布我的应用程序时,我选择“任何CPU”作为平台目标。当我尝试在Windows 7 64位家庭高级版上运行时,我的应用程序在安装后崩溃。
我尝试在特定的x64平台上重新发布该作品但仍然失败。
关于我在这里做错了什么的想法?非常感谢〜!
答案 0 :(得分:7)
选择'x86',我敢打赌它会起作用;
您的项目中很可能有一个'x86'(32位)引用,例如DotTwain。 “任何CPU”意味着.NET框架将其作为“x64”运行,因为您已经告诉它一切正常。然后它尝试加载一个引用,找到它的32位并给出'BadImageFormatException'(通常)。
所以,你需要一个不是'ngen-ed'的DotTwain版本,CPU引用也是'Any',或者发布一个单独的64位版本,你的所有引用都没有被设置到'x86'(你想要'任何'或'x64')。
(一直遇到这个问题;有几个应用程序在32位,64位运行,并使用DotTwain和其他Atalasoft组件)
希望有所帮助!