アプリケーションごとの構成

アプリケーションごとの構成では、特定のアプリケーションの依存関係が、サイド バイ サイド アセンブリの 1 つのバージョンから別のバージョンのアセンブリにリダイレクトされます。 特定のアプリケーションの正しい操作で、既定の構成または発行元の構成として通常指定されているバージョンとは異なるアセンブリ バージョンが必要な場合、アプリケーションごとの構成が必要になることがあります。 たとえば、パブリッシャーによるアセンブリ バージョンのグローバル更新によってアセンブリが修正される可能性がありますが、この特定のアプリケーションは中断されます。 この場合、アプリケーションごとの構成を使用して、アプリケーションが以前のアセンブリ バージョンで引き続き実行されるようにすることができます。

Windows Server 2003 以降では、アプリケーションごとの構成では、常にアプリケーションごとに 既定の構成 がオーバーライドされます。 アプリケーションごとの構成では、アプリケーション構成ファイルpublisherPolicyapply="no" が指定され、アプリケーション互換性データベースに対応するエントリが存在する場合にのみ、アプリケーションごとにパブリッシャー構成がオーバーライドされます。

Note

Windows XP では、アプリケーションごとの構成によって、既定の 構成発行元の構成 の両方がアプリケーションごとにオーバーライドされます。 詳細については、「 Windows XP でのアプリケーションごとの構成」を参照してください。

 

Windows Server 2003 以降では、アプリケーション構成ファイルpublisherPolicyapply="yes" が指定され、アプリケーション互換性データベース内のアプリケーションに対して EnableAppConfig フラグが設定されている場合、アプリケーションごとの構成によってパブリッシャー構成がオーバーライドされます。 アプリケーションごとの構成を使用してパブリッシャー構成をオーバーライドするこの機能により、アプリケーションを Safemode で実行できます。 アプリケーション互換性データベースと Safemode の詳細については、「Windows アプリケーション互換性ツールキット」を参照してください。 から Windows アプリケーション互換性ツールキット https://www.microsoft.com/downloadsを取得できます。

Note

publisherPolicyapply="no" を指定するアプリケーション構成ファイル (.config ファイル) を含むコンポーネントを配布すると、アクティブ化コンテキストの生成が失敗します。 publisherPolicyapply="yes" を指定する.config ファイルを含むコンポーネントを出荷する場合、アプリケーションごとの構成は無視されます。

 

アプリケーション管理者は、アプリケーション構成ファイルを作成してインストールし、アプリケーション互換性データベースを更新することで、アプリケーションごとの構成を実装できます。 その後、アプリケーション構成ファイルを展開し、アプリケーションの実行可能ファイルと同じフォルダーにインストールする必要があります。 ファイル スキーマの一覧については、「 アプリケーション構成ファイル スキーマ」を参照してください。 アプリケーション互換性ツールキットの説明に従って、アプリケーション互換性データベースを配布する必要があります。

Note

アプリケーションが Safemode で実行されている場合、アセンブリの発行元が発行元の構成ファイルとして発行する可能性がある重要なセキュリティ修正やバグ修正は受け取りません。 したがって、アプリケーションごとの構成を使用するアプリケーションは、これらの修正プログラムを含む新しいアセンブリがシステムに適用された後でも、セキュリティで保護されていないままであるか、正しく動作し続ける可能性があります。 このため、アプリケーション開発者はアプリケーションごとに構成されたアプリケーションを出荷しないでください。 アプリケーションごとの構成は、発行元の構成によってアプリケーションが破損した場合にのみ、企業管理者が一時的な修正として使用する必要があります。 この場合、永続的な解決策は、アセンブリの開発者とアプリケーションの開発者が連携して、パブリッシャー構成を持つアセンブリが完全に下位互換性があることを確認する必要があるということです。

 

アプリケーション構成ファイルの例を次に示します。 詳細については、「アプリケーション構成ファイル」を参照してください。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
 <windows>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
   <assemblyIdentity  processorArchitecture="X86" name="Microsoft.Windows.mysampleApp" type="win32" version="1.0.0.0"/>
   <publisherPolicy apply="no"/>                     
   <dependentAssembly>
    <assemblyIdentity type="win32" processorArchitecture="x86" name="Microsoft.Windows.SampleAssembly" publicKeyToken="0000000000000000"/>
    <bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.1.0"/>
   </dependentAssembly>
  </assemblyBinding>
 </windows>
</configuration>

アプリケーション管理者は、必要なエントリをアプリケーション互換性データベースに追加する必要があります。 から Windows Application Compatibility Toolkit 2.6 https://www.microsoft.com/downloadsをダウンロードしてインストールします。 ツールキットで説明されているように、互換性管理者を使用して、新しいカスタムデータベースを作成するか、既存のデータベースを更新します。 アプリケーションの互換性レイヤーに対して選択する互換性修正は EnableAppConfig です。 新しい互換性データベースをインストールする前に、常にアプリケーションをテストする必要があります。