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

Windows XP では、アプリケーションごとの構成 既定の構成パブリッシャー構成 の両方がアプリケーションごとにオーバーライドされます。 これにより、特定のアプリケーションの依存関係が、あるバージョンのサイド バイ サイド アセンブリから、指定した別のバージョンのアセンブリにリダイレクトされます。

手記

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

 

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

アプリケーション管理者は、アプリケーション構成ファイルを作成してインストールすることで、アプリケーションごとの構成 実装。 これにより、特定のアプリケーションがサイド バイ サイド アセンブリの 1 つのバージョンへの依存から、別のバージョンへの依存にリダイレクトされます。 アプリケーション構成 ファイルは、パブリッシャー構成ファイル と、アプリケーション マニフェスト およびアセンブリ マニフェスト で指定された既定の構成オーバーライドできます。 アプリケーション構成ファイルには、CreateProcessが呼び出されたときにローダー使用される情報が含まれます。

アプリケーション マニフェストとパブリッシャー構成の両方をオーバーライドするようにアプリケーションを構成するには、開発者がアプリケーション構成ファイルを作成する必要があります。 その後、アプリケーション構成ファイルがデプロイされ、アプリケーションの実行可能ファイルと同じフォルダーにインストールされます。 ファイル スキーマの一覧については、「アプリケーション構成ファイル スキーマ 」を参照してください。

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

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

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