无法加载文件或程序集

Dat*_*han 10 .net c# nhibernate

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

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

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

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

Dat*_*han 8

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

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <qualifyAssembly partialName="System.Data.SqlServerCe" fullName="System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    </assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)

谢谢!