12

免責事項:[宛先に余分なファイルを残す]チェックボックスをオンにすると、フォルダーのアクセス許可を保持できることはわかっていますが、そうしたくありません

そうは言っても、Visual Studio 2010のワンクリックWeb公開で、リモートサーバー上のフォルダーのアクセス許可を保持する方法はありますか?

具体的には、アプリプールアカウントにApp_Dataフォルダーへの変更アクセス許可を持たせたいのですが、アクセス許可は公開プロセス中に常にリセットされます。

4

1 に答える 1

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はプロジェクトファイルをメモリにキャッシュするため、このキャッシュをクリアする必要があります)。

{ProjectName} .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からの公開プロセスと、コマンドラインからの公開操作の両方から自動的に取得されます。

それを試してみて、さらに問題があれば教えていただけますか?

于 2011-07-29T04:18:00.460 に答える