无法加载文件或程序集

我正在使用一个系统来使用带有NHibernate的SqlServerCe。 从我的驱动程序,如果我添加System.Data.SqlServerCe程序集作为参考,我可以创建和运行对数据库的查询就好了。 但是,当尝试使用NHibernate时,我得到以下exception:

mscorlib.dll中出现“System.IO.FileNotFoundException”类型的第一次机会exception附加信息:无法加载文件或程序集“System.Data.SqlServerCe”或其依赖项之一。 该系统找不到指定的文件。

我已经跟踪了对Assembly.Load(“System.Data.SqlServerCe”)的调用的exception,这看起来应该可行。 System.Data.SqlServerCe程序集在GAC中(我也尝试将它作为本地引用添加到CopyLocal = true,无济于事),我可以使用其成员,所以为什么我不能显式加载它? 当我在Reflector中打开程序集时,它无法加载System.Transactions引用(我也尝试将其添加为本地引用,再次无效),因此加载该程序集可能是问题,而不是系统。 Data.SqlServerCe程序集。

这是个常见的问题吗? 可能是系统配置错误?

显然,可以通过在app.config文件中添加元素来解决这个问题。 添加以下内容使我的应用程序顺利运行:

     

谢谢!

这很可能与某些系统(错误)配置有关。

但是,根据设计,SQL Server CE只是一个DLL,可以与您的产品一起提供。
这意味着您可以在System.Data.SqlServerCe的引用属性中将Copy local设置为True ,您就完成了。

我有类似的问题。 我正在做的错误是我试图执行../obj/x86/Release中存在的.exe,而我应该执行./bin/Release中存在的.exe。 (我是C#的绝对新手)。

(我也注意到在这个../bin/Release目录中,引用的.dll文件是在本地复制的。)