【问题标题】:Avoid deleting folder on Web Publish避免在 Web Publish 上删除文件夹
【发布时间】:2013-02-15 06:04:54
【问题描述】:

我正在将我的应用程序部署到 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>

【问题讨论】:

  • 将该文件夹放在解决方案目录之外。理想情况下,创建您的虚拟目录高于 IIS 根目录。
  • 有趣。这就是我让我们的 IIS 管理员创建我们的 IIS 管理员的方式。他为上传图片创建了另一个目录。如果你没有得到答复,我什么时候可以问他。
  • 哦,抱歉,没看错。我无法真正配置外部文件夹,因为这是在 Azure 网站内实现的(不是我可以修改 IIS 设置的 Web 角色)
  • 我从您过去的帖子中意识到这一点。我知道我们确实做到了这一点。详情请咨询我们的管理员。
  • 嘿@DaveA 你有改变与你的系统管理员交谈吗?再次感谢!

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


【解决方案1】:

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

【讨论】:

  • 嘿@ericF 下载发布配置文件后,我编辑了设置并取消选中“在目标位置删除其他文件”选项。我读到有时该选项不起作用,这就是为什么我在 wpp.targets 上尝试跳过规则
【解决方案2】:

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

<AbsolutePath>ErrorLog</AbsolutePath>

<AbsolutePath>media</AbsolutePath>

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

【讨论】:

  • 是的,复制/粘贴太多。我已经解决了,还是不行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-09
相关资源
最近更新 更多