如何部署具有多个区域的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);