是否可以在 MVC 应用程序区域文件夹中托管 bin 目录?

Posted

技术标签:

【中文标题】是否可以在 MVC 应用程序区域文件夹中托管 bin 目录?【英文标题】:Is it possible to host a bin directory within an MVC application Areas folder? 【发布时间】:2017-01-25 10:13:58 【问题描述】:

我有一个 MVC 4 应用程序,它在主应用程序的 Areas 文件夹中托管其他 MVC 应用程序:

网页界面 区域 应用程序 1 内容 观看次数 应用程序 2 内容 观看次数 MainApp.dll Application1.dll Application2.dll 配置 观看次数 库 图片 其他***应用程序文件夹

这些应用程序共享有自己的一组依赖项,这些依赖项当前都驻留在主 bin 目录中。这给我们带来了问题,即一个应用程序需要更新版本的包,迫使我在第二个应用程序中升级包。在我看来,解决这个问题的方法是通过在 Areas 文件夹中的每个文件夹中都有一个 bin 目录来隔离依赖项,该文件夹可能包含不同版本的依赖项:

网页界面 区域 应用程序 1 Application1.dll DependencyV1.dll 内容 观看次数 应用程序 2 Application2.dll DependencyV2.dll 内容 观看次数 MainApp.dll 配置 观看次数 库 图片 其他***应用程序文件夹

除了运行多个版本的依赖项的风险之外——这可能吗?

【问题讨论】:

【参考方案1】:

你不能做你想做的事。

如果您所在区域有多个应用程序,那么就项目而言,它仍然是一个应用程序,因此您只有一个 bin 文件夹。

IIS 可能允许您在虚拟目录中部署多个应用程序,但您需要分开您的区域(每个应用程序一个 VS 项目/csproj)。

您将每个应用程序部署在不同的文件夹中,并在 IIS 中将网站配置为根应用程序,然后右键单击它以添加其他应用程序

【讨论】:

为每个插件创建应用程序域是否可行?

以上是关于是否可以在 MVC 应用程序区域文件夹中托管 bin 目录?的主要内容,如果未能解决你的问题,请参考以下文章

在多个 MVC 应用程序中重用 MVC 区域?

在 MVC 中从区域渲染局部视图

自托管 asp.net mvc

在 MVC Web 应用程序中托管 WCF 服务

将托管引用存储在非托管内存中

WCF 服务作为 MVC 应用程序的一部分