c# - 使用由 MEF 加载的模型类型的 ASP.Net MVC View 导致 View 构建器中的 JIT 编译错误

标签 c# asp.net-mvc-4 razor mef

这被命名为类似于以下问题:ASP.NET MVC: Views using a model type that is loaded by MEF can't be found by the view engine

这与我遇到的问题非常相似。 我正在使用 .NetFx 4.6、MEF 2 和 MVC 4。我有一个单独的类项目,其中包含 Mvc View 、Views 文件夹中的相关配置和 View 中引用的导出模型。

View 和相关配置以及生成的 dll 被复制到 MVC 主机项目中的插件文件夹中,并且所有工作正常,除了在运行时编译 View 时出现以下错误 CS0234: The type or命名空间名称“Central”在命名空间“MyCompany”中不存在(是否缺少程序集引用?)

当我删除 View 中的模型引用时,它将正确加载 View 。

当我将 dll 放在主机应用程序的 bin 文件夹中时,它运行良好。

只有当dll放在Plugins文件夹下才会出现这个异常。

我尝试在 Global.asax Application_Start 的开头使用已弃用的 AppDomain.CurrentDomain.AppendPrivatePath(Path.Combine(HttpRuntime.AppDomainAppPath, "Plugins")); 但这没有出现帮助。

引用的问题有@BradWilson 和@MatthewAbbott 的评论,两者都提到了 dll 在 bin 文件夹中的位置。

谁能告诉我如何做到这一点,以便导入的 dll 可以保留在插件文件夹中,而不必将其放入 bin 文件夹并导致 MVC 主机重置?

最佳答案

最后我使用了@Ilija Dimov中引用的解决方案评论发现here .

感谢@Ilija Dimov

关于c# - 使用由 MEF 加载的模型类型的 ASP.Net MVC View 导致 View 构建器中的 JIT 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32519707/

相关文章:

asp.net-mvc - 如何从我的模型中的剑道编辑器中获取值

c# - 清理 ASP.NET Core 的自动 400 响应

c# - 在 C#.Net 中检测到无法访问的代码

c# - 将 IEnumerable ViewModel 传递给 View

asp.net-mvc-3 - 是否有一种更简洁的方法可以在 Razor 中的@variable 后面加上逗号

c# - 使用 TagBuilder 和 ASP.NET MVC 4(使用 Razor 引擎)呈现 html 代码

javascript - SignalR 问题 : Cannot connect to Hub class

c# - 带过期时间的字典缓存

asp.net-mvc - 如何使基于列表的编辑器模板正确绑定(bind)以进行 POST 操作?

c# - ASP.NET MVC4 实体验证错误 : User name already taken