如何发布带有区域的asp.net mvc 4应用程序?

时间:2014-09-17 20:59:57

标签: c# asp.net-mvc-4 visual-studio-2013 msdeploy asp.net-mvc-areas

我有一个asp.net mvc 4应用程序,它有多个区域设置。但是,此应用程序使用多个项目来构成此区域as explained here以遵循解决方案中的n层。这些单独项目的输出路径设置为主mvc应用程序的bin文件夹,工作正常。

当我在文件系统上将此主应用程序发布为目标时,在目录中创建的Areas文件夹仅具有HelpPage文件夹内容但没有区域文件夹。

我想知道如何将其资源(如视图,.config文件,脚本,内容等)添加到发布的Areas文件夹中。

目前我正在使用我认为不合适的bat文件来执行此操作。我已经阅读了有关使用[ProjectName] .wpp.targets在发布时包含文件的信息。任何人都可以建议如何包含项目中未包含的文件夹,在此背景下的不同区域。

1 个答案:

答案 0 :(得分:1)

我们使用与您提供的博客文章相同的项目设置。在我们的例子中,我们最终添加了[ProjectName] .wpp.target以及以下内容..

<Target Name="CopyCustomFiles" AfterTargets="CopyAllFilesToSingleFolderForPackage" >   
     <ItemGroup> 
         <Areas Include="$(ProjectDir)Areas\*\Content\**;$(ProjectDir)Areas\*\Images\**;$(ProjectDir)Areas\*\Scripts\**;$(ProjectDir)Areas\*\Views\**;$(ProjectDir)Areas\*\web.config;$(ProjectDir)Areas\*\*.xml"  />
        </ItemGroup>

      <Copy SourceFiles="@(Areas)" DestinationFiles="@(Areas->'$(_PackageTempDir)\areas\%(ToPath)\%(RecursiveDir)%(Filename)%(Extension)')" />

</Target>

基本上,目标是在msbuild发布管道中包含自定义文件,并使用&#34; CopyAllFilesToSingleFolderForPackage&#34;,我们正是这样做的。 另一种方法是使用专用的msbuild脚本,在这里查看答案 How to Publish Web with msbuild?

有一个bat文件,就像你的一样......