我可以在一键式网络发布期间保留文件夹权限吗?

Lob*_*ity 12 asp.net iis visual-studio-2010 msdeploy one-click-web-publishing

免责声明:我知道如果我选中"在目的地保留额外文件"复选框,我可以保留文件夹权限,但我不想这样做.

也就是说,有没有办法让Visual Studio 2010中的一键式Web发布保留远程服务器上文件夹的权限?

具体来说,我希望应用程序池帐户具有对App_Data文件夹的修改权限,但在发布过程中始终会重置权限.

Say*_*imi 15

默认情况下,我们将在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>
Run Code Online (Sandbox Code Playgroud)

在这个文件里面你可以看到我正在声明该属性并将其值设置为False.获得此文件后,我们的发布过程将自动从Visual Studio以及命令行中的任何发布操作中获取它.

如果您有其他问题,可以尝试一下并告诉我吗?