如何部署具有多个区域的asp.net mvc 4应用程序

我按照这篇文章制作了可插拔的asp.net mvc4应用程序

但在部署应用程序时面临问题。 在我的解决方案中, MainProj是主项目,其中所有其他项目都在区域文件夹中。 每个项目都有它的模型,视图和控制器。 我已经在MainProj中提供了所有子项目(区域文件夹中的项目)的引用 。 现在,当尝试部署MainProj时 ,它只发布带有视图的主项目(在本例中为MainProj),区域文件夹中的项目没有部署(例如:Cart,CRM)。 即使我在主项目(MainProj)中添加区域(ex CRM)项目的引用,也只有区域项目的ddl(ex CRM)部署在bin文件夹中,区域中没有项目视图(CRM)部署。 什么是错的。

这是解决方案的结构:

在此处输入图像描述

这是我原来的文件夹结构。

在此处输入图像描述

但是当我在visual studio中以调试模式运行我的项目时,应用程序运行得非常好。 所以我点击屏幕底部系统托盘中的iis express图标,观察到visual studio为每个项目托管不同的站点。

在此处输入图像描述

这里找到了一些类似的答案,但在我的案例中却没有。 请让我知道我错过了什么或做错了什么。 部署此类应用程序的正确方法是什么。 提前致谢。

终于解决了这个问题。 将解决方案中所有项目的引用添加到MainProj中。 然后首先在发布文件夹中部署主项目( MainProj )。 所以目录变成如下:

  • 发布
    • MainProj

然后手动创建文件夹“ 区域 ”在发布文件夹中

  • 发布
    • MainProj
    • 地区

然后为“ Areas ”文件夹中的每个项目手动创建文件夹:

  • 发布
    • MainProj
    • 地区
      • 大车
      • CRM
      • ….
      • ….
      • 管理员
      • 顾客
      • 店面

最后,逐个手动部署(发布)每个子项目(区域内的项目)。 防爆。 CRM部署在CRM文件夹中。

多数民众赞成….我的应用程序工作正常。

为每个项目创建了发布配置文件,现在我可以随时将任何项目部署到各自的位置,使每个开发人员能够独立地在任何单个项目上工作,并将他们的项目(模块)部署到发布环境到指定的位置,而无需任何项目依赖。

打开您的主项目.csproj文件并找到此行

 pdbonly true bin\ TRACE prompt 4 false 

并在Prefer32Bit节点后添加以下行

  AllFilesInProjectFolder 

保存并发布。

按照Saurabh Palatkar的回答然后自动部署Areas文件夹,将所有视图添加到csproj。

在VS之外打开主.csproj文件,并在Project内部和最后添加以下XML。 (就在关闭/项目之前)。

     Areas\%(RecursiveDir)%(Filename)%(Extension)      CustomDeployAreas; $(CopyAllFilesToSingleFolderForPackageDependsOn);   CustomDeployAreas; $(CopyAllFilesToSingleFolderForPackageDependsOn);