プライベート アセンブリを使用した既存のアプリケーションの修正
Windows XP 以降では、プライベート アセンブリを作成し、特定のアプリケーションで使用できるようにすることができます。 この機能は、更新プログラムと互換性のないアプリケーションを修正するために使用できます。 たとえば、オペレーティング システムのアップグレード後に最新バージョンのMSVCRT.DLLと互換性がなくなったアプリケーションがあります。 この場合、MSVCRT.DLLは Windows 保護ファイルであるため、システム バージョンを置き換えるオプションはありません。 新しいバージョンの MSVCRT で動作するようにアプリケーションを書き直す必要はなく、MSVCRT 用のプライベート アセンブリを作成し、アプリケーション フォルダーにインストールできます。 すべての共有コンポーネントがプライベート サイド バイ サイド アセンブリに適しているわけではないことに注意してください。また、一部のコンポーネントには、コンポーネントをインストールできる場所に関するライセンス制限があります。 コンポーネントは、サイド バイ サイド コンポーネントの条件を満たす必要があります。 適切なアセンブリを提供できるかどうかをコンポーネントの発行元に確認します。
プライベート アセンブリのマニフェストとアプリケーションのマニフェストの両方を、アプリケーションの実行可能ファイルと同じフォルダーにインストールする必要があります。 アプリケーションを実行すると、アプリケーション マニフェストが参照され、アプリケーションにプライベートな MSVCRT のバージョンが読み込まれます。
この例では、プライベート アセンブリには、次のアセンブリ マニフェストのように、MSVCRT.DLLとMSVCIRT.DLLの両方が含まれます。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32"
name="Microsoft.Windows.PrivateCPlusPlusRuntime"
version="6.0.0.0"
processorArchitecture="x86"/>
<file name="msvcrt.dll"/>
<file name="msvcirt.dll"/>
</assembly>
可能なアプリケーション マニフェストの例を次に示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="x86"
name="APPLICATION"
type="win32"
/>
<description>Description of Application</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.PrivateCPlusPlusRuntime"
version="6.0.0.0"
processorArchitecture="x86"/>
</dependentAssembly>
</dependency>
</assembly>