20

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

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

这个答案中,我学会了如何在 .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>
4

2 回答 2

2

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

于 2013-03-01T02:56:17.967 回答
1

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

<AbsolutePath>ErrorLog</AbsolutePath>

<AbsolutePath>media</AbsolutePath>

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

于 2013-03-03T11:15:02.283 回答