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

时间:2017-01-25 10:13:58

标签: c# asp.net-mvc appdomain

我有一个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 个答案:

答案 0 :(得分:0)

你不能做你想做的事。

如果您所在的区域有多个应用,那么在项目方面,它仍然是一个应用,因此您只有一个bin文件夹。

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

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