我按照this文章制作了可插拔的asp.net mvc4应用程序
但在部署应用程序时遇到问题。在我的解决方案中, MainProj 是主项目,其中所有其他项目都在区域文件夹中。每个项目都有它的模型,视图和控制器。我已经在 MainProj 中提供了所有子项目(区域文件夹中的项目)的参考。现在,当尝试部署 MainProj 时,它只发布带有视图的主项目(在本例中为MainProj),区域文件夹中的项目未部署(例如:Cart,CRM)。即使我在主项目(MainProj)中添加区域(ex CRM)项目的引用,也只有区域项目的ddl(ex CRM)部署在bin文件夹中,区域中没有项目视图(CRM)部署。什么出错了。
以下是解决方案的结构:
这是我的原始文件夹结构。
然而,当我在visual studio中以调试模式运行我的项目时,该应用程序运行得非常好。所以我点击了屏幕底部系统托盘中的iis express图标,发现visual studio正在为每个项目托管不同的网站。
有些类似的答案发现here但在我的案例中没有起作用。 请让我知道我错过了什么或做错了什么。部署此类应用程序的正确方法是什么。 提前谢谢。
答案 0 :(得分:3)
终于解决了这个问题。 将解决方案中所有项目的引用添加到MainProj中。 然后首先在发布文件夹中部署主项目( MainProj )。 所以目录如下:
然后手动创建文件夹" 区域"在发布文件夹
中然后为" 区域"区域内的每个项目手动创建文件夹。文件夹:
最后,逐个手动部署(发布)各个子项目(区域内的项目)。防爆。 CRM部署在CRM文件夹中。
多数民众赞成...... 我的应用程序运行正常。
为每个项目创建发布配置文件,现在我可以随时将任何项目部署到各自的位置,使每个开发人员能够独立地在任何单个项目上工作,并将他们的项目(模块)部署到指定的发布环境没有任何依赖的位置。
答案 1 :(得分:0)
打开您的主项目.csproj文件并找到此行
<FilesToIncludeForPublish>AllFilesInProjectFolder</FilesToIncludeForPublish>
并在Prefer32Bit节点
之后添加以下行itextsharp
保存并发布。
答案 2 :(得分:0)
按照Saurabh Palatkar的回答,然后自动部署Areas文件夹,将所有视图添加到csproj。
在VS之外打开master .csproj文件,并在Project内部和最后添加以下XML。 (就在关闭/项目之前)。
<Target Name="CustomDeployAreas">
<ItemGroup>
<AreasFiles Include="$(MSBuildProjectDirectory)\Areas\**" />
<FilesForPackagingFromProject Include="%(AreasFiles.Identity)">
<DestinationRelativePath>Areas\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomDeployAreas;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
<CopyAllFilesToSingleFolderForMsdeployDependsOn>
CustomDeployAreas;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>