次の方法で共有


プライベート アセンブリを使用した既存のアプリケーションの修正

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>