Asp.net

一鍵網路發布過程中可以保留文件夾權限嗎?

  • July 29, 2011

免責聲明:我知道如果我選中“在目標上保留額外文件”複選框,我可以保留文件夾權限,但我不想這樣做

也就是說,有沒有辦法讓 Visual Studio 2010 中的一鍵式 Web 發布保留遠端伺服器上文件夾的權限?

具體來說,我希望應用程序池帳戶對 App_Data 文件夾具有修改權限,但在發布過程中始終會重置權限。

預設情況下,我們將在 App_Data 文件夾上呼叫 Web Deploy SetAcl 提供程序,此行為由 MSBuild 屬性 IncludeSetAclProviderOnDestination 控制。此屬性的預設值在*%ProgramFiles32%\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets*中為 true 。如果您想阻止呼叫 SetAcl 提供程序,您可以在發佈時將此屬性設置為 false。為了做到這一點,請按照以下步驟操作。

  1. 在與您的項目相同的目錄中創建一個名為 {ProjectName}.wpp.targets 的文件(其中 {ProjectName} 是您的 Web 應用程序項目的名稱
  2. 在文件中粘貼此列表下方的 MSBuild 內容
  3. 在 Visual Studio 中重新載入項目(VS 將項目文件記憶體在記憶體中,因此需要清除此記憶體)。

{項目名稱}.wpp.targets

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <PropertyGroup>
   <IncludeSetAclProviderOnDestination>false</IncludeSetAclProviderOnDestination>
 </PropertyGroup>    
</Project>

在此文件中,您可以看到我聲明了該屬性並將其值設置為 False。獲得此文件後,我們的發布過程將自動從 Visual Studio 以及命令行中的任何發布操作中獲取該文件。

您可以嘗試一下,如果您還有其他問題,請告訴我?

引用自:https://stackoverflow.com/questions/6852155