【发布时间】:2013-05-07 19:03:52
【问题描述】:
一些背景
我有一个为多个客户分发的闭源 asp.net MVC 应用程序。我正在尝试开发一个扩展,以包含一些非常具体的功能,供单个客户使用(他也将拥有扩展源代码)。
我正在将扩展开发为另一个 mvc 项目,作为一个区域加载。我试图避免在主应用程序“/bin”文件夹中部署扩展二进制文件。
我正在主应用程序程序集的 PreApplicationStartMethod 中手动加载扩展程序集及其依赖项。区域注册过程顺利,区域路线按预期注册。
问题
当我尝试加载一些扩展页面时,我收到“未找到视图 'xx' 或其主视图或没有视图引擎支持搜索的位置。”消息。我调查了一下,并用“Hello”字符串替换了视图内容。视图已正确呈现。
我试图生成一个触发错误的最小值,结果证明它是“@model”指令。我试图弄清楚发生了什么,这是一个程序集加载错误。我使用“@model object”创建了一个最小视图,并尝试将模型转换为原始类型并收到以下错误消息:“无法加载文件或程序集 'xxx' 或其依赖项之一。系统找不到指定的文件。"(此程序集包含视图使用的类类型)
为了确认问题,我将提到的程序集移至主应用程序“/bin”文件夹,一切正常。
我还在控制器上插入了一些模型操作指令,只是为了调查是否会出现异常但一切正常,我什至可以使用 json 渲染网格。
我正在加载每个程序集:
var assembly = Assembly.LoadFrom(file)
BuildManager.AddReferencedAssembly(assembly)
还有什么我需要做的吗?
【问题讨论】:
标签: asp.net-mvc-3 assembly-resolution strongly-typed-view