通过ClickOnce在64位计算机上运行扫描应用程序

时间:2010-07-20 06:20:48

标签: c# clickonce windows-7-x64 twain

好的,这是我的设置。

我有一个c#app在所有32位Windows XP-Vista-7机器上都能正常运行。我已经有一个verisign PFX来支持ClickOnce部署,并使用Atalasoft DotTwain 8.0作为第三方扫描程序助手。

当我发布我的应用程序时,我选择“任何CPU”作为平台目标。当我尝试在Windows 7 64位家庭高级版上运行时,我的应用程序在安装后崩溃。

我尝试在特定的x64平台上重新发布该作品但仍然失败。

关于我在这里做错了什么的想法?非常感谢〜!

1 个答案:

答案 0 :(得分:7)

选择'x86',我敢打赌它会起作用;

您的项目中很可能有一个'x86'(32位)引用,例如DotTwain。 “任何CPU”意味着.NET框架将其作为“x64”运行,因为您已经告诉它一切正常。然后它尝试加载一个引用,找到它的32位并给出'BadImageFormatException'(通常)。

所以,你需要一个不是'ngen-ed'的DotTwain版本,CPU引用也是'Any',或者发布一个单独的64位版本,你的所有引用都没有被设置到'x86'(你想要'任何'或'x64')。

(一直遇到这个问题;有几个应用程序在32位,64位运行,并使用DotTwain和其他Atalasoft组件)

希望有所帮助!