我正在尝试为ASP.NET MVC创建一个插件框架。我已经设法动态地注入了控制器,但在加载视图模板时遇到了问题。
我已经调试了MVC,并将问题定位到以下调用:
BuildManager.GetObjectFactory("~/Views/HelloWorld/Index.cshtml")问题不在于路径不存在,而在于它不能编译。视图的类型是使用HelloWorldPlugin.Models.Message作为模型,但似乎BuildManager找不到该类型。我在临时ASP.NET文件中查看了一下,不出所料,HelloWorldPlugin.dll并不存在。
让我感到困惑的是,在应用程序启动之前,我调用了BuildManager.AddReferencedAssembly,将HelloWorldPlugin程序集作为参数传递。这对于让MVC找到控制器很有效,但是为什么BuildManager不把它安装到临时ASP.NET文件中,为什么它在编译视图时找不到它呢?
发布于 2011-11-06 08:39:40
您的插件程序集不会复制到临时ASP.NET文件中。程序集是从bin文件夹加载的。BuildManager.AddReferencedAssembly只是向应该加载到内存中的程序集引用添加一个程序集引用。它等效于将程序集添加到应用程序级Web.config文件中。
你能分享你得到的确切的错误信息吗?您是否检查了bin文件夹以确保正确引用了您的插件程序集?
https://stackoverflow.com/questions/8021054
复制相似问题