パッケージのターゲットにアクセス許可を設定するように指示する具体的な方法はありません。そのため、回避策は、パッケージターゲットの後にアクセス権を自分で設定することです。
ここで私はどのようにしたのですか?正規表現の部分は、ビルドスクリプトにあるプロジェクトファイルパスからプロジェクトファイルの名前を引き出すことです。その名前は、作成された\ Output \ Packages \フォルダまで一致します。次にexecコマンドの中でcaclsを呼び出して、指定したユーザのためにそのディレクトリ内のすべてのファイルに対するアクセス権を設定します。
<Target Name="Package">
<MSBuild Projects="@(PackageProject)" Targets="Package" Properties="Platform=$(Platform);
Configuration=$(Configuration);
DeployOnBuild=true;
DeployTarget=Package;
PackageLocation=$(PackageOutputDir)\$([System.Text.RegularExpressions.Regex]::Split($(ProjectName), '(.*\\)([a-z,A-Z,0-9,_,-]+)(\.\*proj;)')[2])\$([System.Text.RegularExpressions.Regex]::Split($(ProjectName), '(.*\\)([a-z,A-Z,0-9,_,-]+)(\.\*proj;)')[2]).zip;
PackageAsSingleFile=true;
ExcludeFilesFromDeployment=Web.config;
_PackageTempDir=$(PackageOutputDir)\temp;">
</MSBuild>
<Exec Command="echo y| cacls $(PackageOutputDir)\$([System.Text.RegularExpressions.Regex]::Split($(ProjectName), '(.*\\)([a-z,A-Z,0-9,_,-]+)(\.\*proj;)')[2])\* /G NetworkService:F"/>
</Target>
のように、ZIPファイルのアクセス許可の継承を復元する方が良いだろう。プロセスがそのフォルダに配置するzipファイル以外のファイルがあります。彼らはまた、同じままにする権限が必要です。彼らは適切に継承するように、フォルダに再度アクセス許可を追加する必要があります。 –
icacls * /リセット – Vertigo