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/

相关文章:

具有两个条件的 C# FindElement(By...)

asp.net - StateModel.AddModelError() 但在重定向上?

html - 如何让 materializecss 复选框与@Html.CheckBoxFor 一起工作?

c# - 使用 session 邀请 C# 在正文中发送 Html

c# - string.Format 在 if 语句内时在 C# razor 中不起作用

asp.net-mvc - 在 ASP.NET MVC 应用程序中更改日期格式

c# - 如何像 Vue 一样从父层向 Blazor 组件随机添加 CSS 属性?

c# - 如何使用 LINQ 从列表中选择提供的索引范围内的值

c# - 从头连接到数据库

c# - 自旋锁和只读字段