我有一个Azure Mobile Service
项目,该项目依赖于引用FluentNHibernate
的另一个(持久性)项目。本地所有内容都在Release
和Debug
模式下正常运行。发布该项目似乎是成功的(蓝色笑脸)。当我提出请求时会出现问题,其中使用了FluentNHibernate
。我收到以下错误消息:
无法找到程序集' FluentNHibernate,Version = 2.0.3.0,Culture = neutral,PublicKeyToken = null'。
我已经尝试了很多东西:
dependentAssembly
中添加Web.config
,在持久性项目中添加App.config
。对我来说有点困惑的是:当我更改FluentNHibernate
包的版本时,我可以在发布预览窗口中看到此dll不会更新。
我真的不确定此问题是否依赖于此特定包(FluentNHibernate
)。例如,什么意思是:PublicKeyToken=null
?
我还可以尝试在云中运行服务吗?
答案 0 :(得分:3)
以下代码适用于我的解决方案。它将处理程序连接到AppDomain的AssemblyResolve事件,如果找不到程序集,则会引发该事件。在这种情况下,我告诉它检查当前加载的程序集,如果匹配则返回一个,这应该是FluentNHibernate。尝试将其作为WebApiConfig.Register
中的第一行public static void Register()
{
AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
{
return AppDomain.CurrentDomain.GetAssemblies()
.Where(a => a.FullName == args.Name).FirstOrDefault();
};
// the rest of WebApiConfig.Register...
}