Asp.net
一鍵網路發布過程中可以保留文件夾權限嗎?
免責聲明:我知道如果我選中“在目標上保留額外文件”複選框,我可以保留文件夾權限,但我不想這樣做。
也就是說,有沒有辦法讓 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。為了做到這一點,請按照以下步驟操作。
- 在與您的項目相同的目錄中創建一個名為 {ProjectName}.wpp.targets 的文件(其中 {ProjectName} 是您的 Web 應用程序項目的名稱)
- 在文件中粘貼此列表下方的 MSBuild 內容
- 在 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 以及命令行中的任何發布操作中獲取該文件。
您可以嘗試一下,如果您還有其他問題,請告訴我?