2

我有一个 MVC 4 项目,我从动态加载的程序集中加载视图。只要我不使用强类型视图,这很好用,因为在这种情况下我会收到“找不到类型或命名空间”异常。

然后,我尝试将 a 添加AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;到我的Application_Start,但从未命中该事件来解析剃刀视图引擎搜索的程序集。
资源也存在同样的问题,但它只使用基本文化并且至少不会崩溃。

我知道我的事件很好地解决了程序集,因为当我在代码中使用相同的类时,事件被命中,我可以很好地使用类/资源。

有谁知道如何解决 Razor 视图中使用的程序集?

现在我dirty hack通过将程序集复制到/bin文件夹来使用 a ,这基本上可以工作,但是除了 beeeing 之外还会产生一些其他问题just a ugly hack
我也试过AppendPrivatePath了,这对剃刀的看法也没有帮助。

4

1 回答 1

1

我在http://shazwazza.com/post/Developing-a-plugin-framework-in-ASPNET-with-medium-trust找到了解决方案:

  • 将私有路径添加到 web.config
  • 添加 aPreApplicationStartMethod并在该方法中执行以下操作:
  • 将所有插件 DLL 复制到上面作为私有路径链接的文件夹中
  • 通过加载程序集Assembly.Load(path)并将它们添加到 BuildManager 通过BuildManager.AddReferencedAssembly(a);

现在剃须刀引擎能够从这个程序集中加载类型。

于 2013-07-25T13:30:45.490 回答