避免删除Web Publish上的文件夹

时间:2013-02-28 21:20:29

标签: asp.net-mvc deployment azure visual-studio-2012 umbraco

我正在将我的应用程序部署到Azure网站。我已经成功配置了发布配置文件,并设置了tfspreview.com,以便在每次代码提交时使用持续集成自动发布。

我在路径“/ media”上有一个文件夹。此文件夹包含通过CMS(umbraco)上传的图片和文档。每个Web部署都会删除此文件夹。

this answer开始,我学习了如何在.csproj或wpp.targets文件中添加SkipDelete规则,但每次我发布网站时,整个文件夹都会被删除。

以下是我目前在wpp.targets中使用的代码:

<PropertyGroup>
<AfterAddIisSettingAndFileContentsToSourceManifest>
  AddCustomSkipRules
</AfterAddIisSettingAndFileContentsToSourceManifest>
</PropertyGroup>

<Target Name="AddCustomSkipRules">
<Message Text="Adding Custom Skip Rules" />
<ItemGroup>
  <MsDeploySkipRules Include="SkipMediaFolder">
    <SkipAction>Delete</SkipAction>
    <ObjectName>filePath</ObjectName>
    <AbsolutePath>media</AbsolutePath>
  </MsDeploySkipRules>
</ItemGroup>
</Target>

<PropertyGroup>
<UseMsDeployExe>true</UseMsDeployExe>
</PropertyGroup>

2 个答案:

答案 0 :(得分:2)

这不仅仅是取消选中发布向导(设置步骤)中“发布前删除所有现有文件”框的问题吗?我知道在从Visual Studio端设置发布时可以使用该选项 - 在我看来,Azure发布凭据只是为您提供连接,而不是您通过向导进行的设置。

答案 1 :(得分:1)

查看您要链接到的问题以及您上面提供的代码,您似乎需要更改该行:

<AbsolutePath>ErrorLog</AbsolutePath>

<AbsolutePath>media</AbsolutePath>

因为这是指您不想删除的文件夹。 ErrorLog是另一个问题的作者不想删除的文件夹。