0

我已经搜索了数周来寻找解决方案,但到目前为止还没有找到任何东西。我正在使用本地数据库来存储 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 文件夹更改为非只读,但仍然从调试它不起作用。

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

4

1 回答 1

2

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

于 2012-07-23T16:03:38.667 回答