Side-by-side アセンブリの使用
Microsoft または他のサイド バイ サイド アセンブリ発行元から入手できる サイド バイ サイド アセンブリ を使用するには、次の手順に従って新しいアプリケーションを開発するか、既存のアプリケーションを更新します。 現在 Microsoft によって提供されているサイドバイサイド アセンブリの一覧については、「 サポートされている Microsoft Side-by-side アセンブリ」を参照してください。 アセンブリをサイド バイ サイド アセンブリとしてインストールするには、少なくとも Windows XP でアプリケーションを実行する必要があることに注意してください。 詳細については、「 Side-by-side アセンブリを作成するためのガイドライン」を参照してください。
サイド バイ サイド アセンブリをアプリケーションに追加するには
アプリケーションで必要なサイド バイ サイド アセンブリを特定します。 Windows XP 以降、これらのサイド バイ サイド アセンブリとそのアセンブリ マニフェストはオペレーティング システムと共にインストールされますが、グローバルに登録されません。
XML エディターを使用して 、アプリケーション マニフェストを作成します。 以下のアプリケーション マニフェストの例を参照してください。 詳細については、「マニフェスト ファイル リファレンス」の 「アプリケーションマニフェスト」を参照してください。
アプリケーションを一意に定義するアプリケーション マニフェストの DEF コンテキスト assemblyIdentity サブ要素に属性値を入力します。 DEF コンテキスト assemblyIdentity の詳細については、「 アプリケーション マニフェスト」を参照してください。
アセンブリに依存アセンブリが含まれている場合は、アプリケーション マニフェストの対応する REF コンテキスト assemblyIdentity サブ要素に属性値を入力します。 REF コンテキスト assemblyIdentity の詳細については、「 アプリケーション マニフェスト」を参照してください。
<dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.SampleAssembly" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="a5aaf5ba15723d5"/>
アプリケーションのバイナリ実行可能ヘッダー ファイルにアプリケーション マニフェストを含めることができます。
この場合は、アプリケーション ヘッダー ファイルに次の行も追加します。
- CREATEPROCESS\_MANIFEST\_RESOURCE\_ID RT\_MANIFEST "YourApp.exe.manifest"
別の方法として、アプリケーションの実行可能ファイルと同じディレクトリに別のマニフェスト ファイルを配置することもできます。 オペレーティング システムは、最初にファイル システムからマニフェストを読み込み、実行可能ファイルのリソース セクションを確認します。 ファイル システムのバージョンが優先されます。
共有アセンブリ は、 Windows インストーラー バージョン 2.0 を使用してインストールする必要があります。 「 Windows XP でサイド バイ サイド共有のために Win32 アセンブリをインストールする方法」の説明に従って、Windows インストーラー パッケージを作成します。
プライベート アセンブリ は、 Windows インストーラー バージョン 2.0 を使用してインストールできます。 「 Windows XP でアプリケーションをプライベートに使用するために Win32 アセンブリをインストールする方法」の説明に従って、Windows インストーラー パッケージを作成します。 他のインストーラーを使用して、プライベート アセンブリとそのマニフェストをアプリケーションの実行可能ファイルと同じフォルダーにコピーすることもできます。
アプリケーションをテストして結果を確認します。 テスト コンピューターにサイド バイ サイド アセンブリが登録されていないことに注意してください。
アプリケーションを展開するか、Windows インストーラー パッケージとして更新します。
アプリケーション マニフェストの例
アプリケーション マニフェストの例を次に示します。
<?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.mysampleapp" version="1.0.0.0" processorArchitecture="x86"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.SampleAssembly" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="a5aaf5ba15723d5"/>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Tools.MyPrivateDll" version="2.5.0.0" processorArchitecture="x86"/>
</dependentAssembly>
</dependency>
</assembly>