2013-02-28 52 views
21

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

我在路径“/ 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> 
+0

将该文件夹放在解决方案目录之外。理想情况下,创建一个高于IIS根目录的虚拟目录。 – 2013-02-28 21:35:31

+0

它已经= D – amhed 2013-02-28 21:37:45

+0

有趣。这就是我让我们的IIS管理员创建我们的方式。他为上传图像创建了另一个目录。如果你没有得到答案,我会尽可能地问他。 – 2013-02-28 21:40:00

回答

2

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

+0

嗨@ericF在我下载发布配置文件后,我编辑了设置并取消选中“删除目标位置的其他文件”选项。我读过,有时候,这个选项不起作用,这就是为什么我试着跳过wpp.targets的规则。 – amhed 2013-03-01 12:28:22

+0

它在私人服务器上为我工作。 – 2016-12-10 04:35:17

1

纵观要链接到与您在上面提供的代码的问题,看来你需要更改线路:

<AbsolutePath>ErrorLog</AbsolutePath> 

<AbsolutePath>media</AbsolutePath> 

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

+0

是的,太多的复制/粘贴。我已经修好了,仍然不起作用。 – amhed 2013-03-03 14:54:44

相关问题