无法在Azure移动服务上找到程序集

时间:2015-10-26 12:58:37

标签: azure fluent-nhibernate azure-mobile-services

我有一个Azure Mobile Service项目,该项目依赖于引用FluentNHibernate的另一个(持久性)项目。本地所有内容都在ReleaseDebug模式下正常运行。发布该项目似乎是成功的(蓝色笑脸)。当我提出请求时会出现问题,其中使用了FluentNHibernate。我收到以下错误消息:

  

无法找到程序集' FluentNHibernate,Version = 2.0.3.0,Culture = neutral,PublicKeyToken = null'。

我已经尝试了很多东西:

  • 重新安装包
  • 一个新的普通香草移动服务
  • 在主项目的dependentAssembly中添加Web.config,在持久性项目中添加App.config

对我来说有点困惑的是:当我更改FluentNHibernate包的版本时,我可以在发布预览窗口中看到此dll不会更新。

我真的不确定此问题是否依赖于此特定包(FluentNHibernate)。例如,什么意思是:PublicKeyToken=null? 我还可以尝试在云中运行服务吗?

1 个答案:

答案 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...
}