Fluent nhibernate Fluent NHibernate错误映射程序集在\bin(ASP.NET)之外

Fluent nhibernate Fluent NHibernate错误映射程序集在\bin(ASP.NET)之外,fluent-nhibernate,mapping,assemblies,Fluent Nhibernate,Mapping,Assemblies,我正在尝试动态映射一个或多个程序集,这些程序集本身会动态加载到ASP.NET网站中。我的web.config设置允许探测名为“paks”的子目录(该子目录也被设置为appSetting,以便我可以在以后构建路径以访问DLL),加载主程序集的效果100%良好,但FluentNHibernate存在以下问题: 我的.Mapping如下所示: .Mappings(m => { foreach (String assembly in assemblies) { String pa

我正在尝试动态映射一个或多个程序集,这些程序集本身会动态加载到ASP.NET网站中。我的web.config设置允许探测名为“paks”的子目录(该子目录也被设置为appSetting,以便我可以在以后构建路径以访问DLL),加载主程序集的效果100%良好,但FluentNHibernate存在以下问题:

我的.Mapping如下所示:

 .Mappings(m => {
   foreach (String assembly in assemblies) {
     String path = String.Format("{0}{1}\\{2}.dll", HttpRuntime.AppDomainAppPath, ConfigurationManager.AppSettings["Packages"], assembly);
     AssemblyName y = AssemblyName.GetAssemblyName(path);
     Assembly asm = Assembly.Load(y);
     m.FluentMappings.AddFromAssembly(asm);
   }
 })
然而,当我运行它时,我从以下位置得到一个异常:

“无法编译映射文档:(XmlDocument)”

但如果我将第二组DLL复制到\bin目录中,事情就会神奇地开始工作。我假设,因为现在NHibernate可以定位DLL,而以前它不能。我使用Assembly.Load()将它们动态加载到.NET中没有任何问题,那么为什么NHibernate在加载后会出现问题呢


有人知道我该如何解决这个问题吗?

很抱歉,原来这是我对ASP.NET探测和程序集加载的一点误解。 我认为一旦加载了程序集,就可以通过引用它的对象来定位它。但情况似乎并非如此。更糟糕的是,我认为探测将递归地向下遍历到子目录中(显然不是这样),并且是我正在进行的初始加载所必需的(情况也并非如此)。我的程序集位于%root%/pak/pdf中,但我的探测只设置为%root%/pak,这就是为什么即使已加载它,引用它的其他程序集也找不到它的原因