2013-02-28 46 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

相關問題