【问题标题】:SQL Server CE BadImageFormatSQL Server CE BadImageFormat
【发布时间】:2012-07-23 15:56:39
【问题描述】:

我已经搜索了数周来寻找解决方案,但到目前为止还没有找到任何东西。我正在使用本地数据库来存储 ZipCode 和 AreaCode 信息。这可以正常工作、正确加载、从数据库读取并在每台计算机上显示结果 开发机器除外。我已将它部署到多台其他计算机上,一切正常,但在开发计算机上,当我尝试从数据库中读取时,它返回 BadImageFormat 异常。

我已经在我的台式机(开发机器)和我妻子的笔记本电脑(它可以正常工作)上浏览了“添加/删除程序”屏幕。就有关 SQL、SQL Server CE、ADO.Net、Visual Studio 等的任何内容而言,已安装程序的两个列表都是相同的。我的 .exe 文件中包含 dll 文件,因此它们使用的是相同的版本。

在某一时刻,这确实在开发机器上工作,然后我想我卸载了一些东西,它破坏了它。从那时起,我安装了 Windows 7 的新副本和 VS 的新副本(硬盘升级的 b/c,不是因为这个问题)。它仍然不起作用。该数据库采用 SQL Server CE 3.5 格式。

我几乎可以保证这不是连接字符串问题,因为这不会改变机器之间的问题。老实说,我什至不会担心它,除了我需要添加/调整数据库,而且我偏执地更改其中的任何内容都会在其他机器上破坏它,这是不可接受的。

谁能想到我可能遗漏的任何东西?

更新:

在具有讽刺意味的伟大时刻之一,发布这个问题后,我突然想到。我可以指出两者之间的一个区别是,在开发机器上,我只是从 VS 或 Projects\Bin 文件夹中运行它。在其他上,我将 exe 和 dll 从 CD 复制到一个文件夹中。所以考虑到这一点,我在 Dev 计算机的桌面上创建了一个文件夹,以与我在其他机器上测试相同的方式复制,一切正常。所以我认为这是文件夹权限问题或类似问题。我尝试将 Bin 文件夹更改为非只读,但仍然从 Debug 它不起作用。

有没有已知的方法来纠正这个问题?

【问题讨论】:

标签: c# deployment sql-server-ce badimageformatexception


【解决方案1】:

BadImageFormat 异常是指您使用的 SqlCE dll 不适合您所运行的体系结构。您的本地计算机可能具有 32 位 (x86) 的 SQL CE 版本,而您的开发计算机可能是 64 位 (x64) 架构。如果您在 DEV 机器中为适当的体系结构替换 SQL CE DLL,您的程序应该可以工作。

【讨论】:

  • 我之前尝试过,但是所有版本都是一样的。这实际上就是为什么我将 DLL 作为程序的一部分,以尝试使其在所有计算机上都使用相同的。你能看看我上面的更新,看看你是否知道原因吗?谢谢!
猜你喜欢
  • 2012-09-11
  • 2012-01-31
  • 1970-01-01
  • 2012-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多