Мне нужно убедиться, что у некоторых каталогов выгрузки всегда есть доступ на запись для сетевой службы. Я создал XML-файл ProjectName.wpp.targets, содержащий конфигурацию, чтобы добавить его в процессе публикации в Visual Studio 2010, но, похоже, он не работает. Нет ошибок, но доступ для записи не применяется. Я перезапускаю VS после любого изменения, чтобы он не кэшировал предыдущую версию. Вот мой XML:
<?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)\Assets\Uploads\FirstFolder</Path>
<setAclAccess>Read,Write</setAclAccess>
<setAclResourceType>Directory</setAclResourceType>
<AdditionalProviderSettings>setAclResourceType;setAclAccess</AdditionalProviderSettings>
</MsDeploySourceManifest>
<MsDeploySourceManifest Include="setAcl">
<Path>$(_MSDeployDirPath_FullPath)\Assets\Uploads\SecondFolder</Path>
<setAclUser>NETWORK SERVICE</setAclUser>
<setAclAccess>Read,Write</setAclAccess>
<setAclResourceType>Directory</setAclResourceType>
<AdditionalProviderSettings>setAclUser;setAclResourceType;setAclAccess</AdditionalProviderSettings>
</MsDeploySourceManifest>
</ItemGroup>
</Target>
<Target Name="DeclareCustomParameters" AfterTargets="AddIisAndContentDeclareParametersItems">
<ItemGroup>
<MsDeployDeclareParameters Include="FirstFolderSetAclParam">
<Kind>ProviderPath</Kind>
<Scope>setAcl</Scope>
<Match>^$(_EscapeRegEx_MSDeployDirPath)\\Assets\\Uploads\\FirstFolder$</Match>
<Description>Add write permission to the FirstFolder.</Description>
<DefaultValue>{$(_MsDeployParameterNameForContentPath)}/Assets/Uploads/FirstFolder</DefaultValue>
<Value>$(_DestinationContentPath)/Assets/Uploads/FirstFolder</Value>
<Tags>Hidden</Tags>
<Priority>$(VsSetAclPriority)</Priority>
<ExcludeFromSetParameter>True</ExcludeFromSetParameter>
</MsDeployDeclareParameters>
<MsDeployDeclareParameters Include="SecondFolderSetAclParam">
<Kind>ProviderPath</Kind>
<Scope>setAcl</Scope>
<Match>^$(_EscapeRegEx_MSDeployDirPath)\\Assets\\Uploads\\SecondFolderFuelBills$</Match>
<Description>Add write permission to the SecondFolder.</Description>
<DefaultValue>{$(_MsDeployParameterNameForContentPath)}/Assets/Uploads/SecondFolder</DefaultValue>
<Value>$(_DestinationContentPath)/Assets/Uploads/SecondFolder</Value>
<Tags>Hidden</Tags>
<Priority>$(VsSetAclPriority)</Priority>
<ExcludeFromSetParameter>True</ExcludeFromSetParameter>
</MsDeployDeclareParameters>
</ItemGroup>
</Target>
</Project>
Я публикую в сетевой папке, так что, возможно, это что-то, поскольку все примеры, которые я могу найти (не так много), касаются IIS.
Как получить запись службы сети в эти каталоги? Нужно ли что-то явно добавлять в свойствах проекта?
Richard