Visual studio wpp.targets更改文件夹权限-仅应用第一个文件夹权限

Visual studio wpp.targets更改文件夹权限-仅应用第一个文件夹权限,visual-studio,amazon-ec2,msdeploy,webdeploy,Visual Studio,Amazon Ec2,Msdeploy,Webdeploy,我正在通过Visual Studio 2013部署到elastic beanstalk 这是我的wpp.targets文件: <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name="SetupCustomAcls" AfterTarget

我正在通过Visual Studio 2013部署到elastic beanstalk

这是我的wpp.targets文件:

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Target Name="SetupCustomAcls" AfterTargets="AddIisSettingAndFileContentsToSourceManifest"> 
   <ItemGroup>
     <MsDeploySourceManifest Include="setAcl">
       <Path>$(_MSDeployDirPath_FullPath)\ChatFiles</Path>
       <setAclAccess>Read,Write</setAclAccess>
       <setAclResourceType>Directory</setAclResourceType>
       <AdditionalProviderSettings>setAclResourceType;setAclAccess</AdditionalProviderSettings>
     </MsDeploySourceManifest>
     <MsDeploySourceManifest Include="setAcl"> 
           <Path>$(_MSDeployDirPath_FullPath)\FileHoldingForS3</Path>
            <setAclAccess>Read,Write</setAclAccess> 
           <setAclResourceType>Directory</setAclResourceType> 
            <AdditionalProviderSettings>setAclResourceType;setAclAccess</AdditionalProviderSettings> 
        </MsDeploySourceManifest>
     <MsDeploySourceManifest Include="setAcl">
       <Path>$(_MSDeployDirPath_FullPath)\FileHoldEmail</Path>
       <setAclAccess>Read,Write</setAclAccess>
       <setAclResourceType>Directory</setAclResourceType>
       <AdditionalProviderSettings>setAclResourceType;setAclAccess</AdditionalProviderSettings>
     </MsDeploySourceManifest>
         </ItemGroup> 
 </Target> 
 <Target Name="DeclareCustomParameters" AfterTargets="AddIisAndContentDeclareParametersItems"> 
    <ItemGroup>
      <MsDeployDeclareParameters Include="FilesSetAclParam">
        <Kind>ProviderPath</Kind>
        <Scope>setAcl</Scope>
        <Match>^$(_EscapeRegEx_MSDeployDirPath)\\ChatFiles$</Match>
        <Description>Add write permission to the ChatFiles folder.</Description>
        <DefaultValue>{$(_MsDeployParameterNameForContentPath)}/ChatFiles</DefaultValue>
        <Value>$(_DestinationContentPath)/ChatFiles</Value>
        <Tags>Hidden</Tags>
        <Priority>$(VsSetAclPriority)</Priority>
        <ExcludeFromSetParameter>True</ExcludeFromSetParameter>
      </MsDeployDeclareParameters>
      <MsDeployDeclareParameters Include="FilesSetAclParam">
           <Kind>ProviderPath</Kind> 
             <Scope>setAcl</Scope> 
            <Match>^$(_EscapeRegEx_MSDeployDirPath)\\FileHoldingForS3$</Match>
            <Description>Add write permission to the FileHoldingForS3 folder.</Description> 
             <DefaultValue>{$(_MsDeployParameterNameForContentPath)}/FileHoldingForS3</DefaultValue> 
             <Value>$(_DestinationContentPath)/FileHoldingForS3</Value> 
            <Tags>Hidden</Tags> 
            <Priority>$(VsSetAclPriority)</Priority> 
            <ExcludeFromSetParameter>True</ExcludeFromSetParameter> 
       </MsDeployDeclareParameters>
      <MsDeployDeclareParameters Include="FilesSetAclParam">
        <Kind>ProviderPath</Kind>
        <Scope>setAcl</Scope>
        <Match>^$(_EscapeRegEx_MSDeployDirPath)\\FileHoldEmail$</Match>
        <Description>Add write permission to the FileHoldEmail folder.</Description>
        <DefaultValue>{$(_MsDeployParameterNameForContentPath)}/FileHoldEmail</DefaultValue>
        <Value>$(_DestinationContentPath)/FileHoldEmail</Value>
        <Tags>Hidden</Tags>
        <Priority>$(VsSetAclPriority)</Priority>
        <ExcludeFromSetParameter>True</ExcludeFromSetParameter>
      </MsDeployDeclareParameters>
    </ItemGroup> 
 </Target> 

$(\u MSDeployDirPath\u FullPath)\ChatFiles
读,写
目录
setAclResourceType;setAclAccess
$(\u MSDeployDirPath\u FullPath)\fileholdingfor3
读,写
目录
setAclResourceType;setAclAccess
$(\u MSDeployDirPath\u FullPath)\FileHoldEmail
读,写
目录
setAclResourceType;setAclAccess
提供者路径
setAcl
^$(\u EscapeRegEx\u MSDeployDirPath)\\ChatFiles$
向ChatFiles文件夹添加写入权限。
{$(\u MsDeployParameterNameForContentPath)}/ChatFiles
$(\u DestinationContentPath)/ChatFiles
隐藏的
$(VsSetAclPriority)
真的
提供者路径
setAcl
^$(\u EscapeRegEx\u MSDeployDirPath)\\fileholdingfor3$
向FileHoldingForS3文件夹添加写入权限。
{$(\u MsDeployParameterNameForContentPath)}/fileholdingfor3
$(\u DestinationContentPath)/fileholdingfor3
隐藏的
$(VsSetAclPriority)
真的
提供者路径
setAcl
^$(\u EscapeRegEx\u MSDeployDirPath)\\fileholdmail$
向FileHoldEmail文件夹添加写入权限。
{$(\u MsDeployParameterNameForContentPath)}/FileHoldEmail
$(\u DestinationContentPath)/FileHoldEmail
隐藏的
$(VsSetAclPriority)
真的

但仅应用第一个文件夹的文件夹权限


我正在确保在部署之前不会缓存wpp.targets文件。

确保没有通过MSDeploy.exe调用指示MSDeploy忽略ACL

,includeAcls="False"
或者在构建中:


问题是,对于每一个:

  MsDeployDeclareParameters Include="FilesSetAclParam"
FileSetAclParam对于每一个都应该是唯一的(当然!)