我编写了一个使用sqlite的应用程序,它在大多数系统上运行良好.它是用C#编写的,唯一的非框架程序集是sqlite,它包含在System.Data.SQLite.dll中.
我在所有机器上以相同的方式部署它(复制粘贴exe文件,数据库文件和System.Data.SQLite文件).它适用于我所有的PC以及我尝试过的大多数PC.
但后来我得到报告说,对某些人来说,它会抛出以下异常:
无法加载文件或程序集'System.Data.SQLite,Version = 1.0.65.0,Culture = neutral,PublicKeyToken = db937bc2d44ff139'或其依赖项之一.尝试加载格式不正确的程序.
现在我已确保dll文件与应用程序exe文件位于同一文件夹中.它是相同的dll,具有与上面的异常消息中所述相同的版本.
我真的对此感到困惑,所以我创建了一个新的虚拟机,在其上安装了Windows 7专业版,并且只是复制粘贴文件,并且事情有效.因此,如果它在一个新窗口上工作,我无法想象其他PC可能会丢失什么...
注意:项目抛出异常的其中两台机器也运行Windows 7 proffesional.
我真的很感激这方面的任何帮助,因为我是新鲜的想法......
这是一种可能性:工作和非工作机器之间的区别是32位还是64位?您是否正在为"任何CPU"构建,当您应该构建外部DLL的位数时?