アセンブリ検索シーケンス
分離されたアプリケーションでアセンブリの依存関係が指定されている場合は、WinSxS フォルダー内の 共有アセンブリ 間で、最初にサイド バイ サイドでアセンブリを検索します。 必要なアセンブリが見つからない場合は、アプリケーションのディレクトリ構造のフォルダーにインストールされているプライベート アセンブリを並べて検索します。
プライベート アセンブリ は、アプリケーションのディレクトリ構造内の次の場所に配置できます。
- アプリケーションのフォルダー内。 通常、これはアプリケーションの実行可能ファイルを含むフォルダーです。
- アプリケーションのフォルダー内のサブフォルダー内。 サブフォルダーの名前はアセンブリと同じである必要があります。
- アプリケーションのフォルダー内の言語固有のサブフォルダー内。 サブフォルダーの名前は、言語カルチャまたは言語を示す DHTML 言語コードの文字列です。
- アプリケーションのフォルダー内の言語固有のサブフォルダーのサブフォルダー。 上位のサブフォルダーの名前は、言語カルチャまたは言語を示す DHTML 言語コードの文字列です。 より深いサブフォルダーには、アセンブリと同じ名前が付けられます。
プライベート アセンブリを初めてサイド バイ サイドで検索すると、アプリケーションのディレクトリ構造に言語固有のサブフォルダーが存在するかどうかを判断します。 言語固有のサブフォルダーが存在しない場合は、次のシーケンスを使用して、次の場所でプライベート アセンブリを並べて検索します。
- WinSxS フォルダーを並べて検索します。
- \\<appdir>\<assemblyname>.DLL
- \\<appdir>\<assemblyname.manifest>
- \\<appdir>\<assemblyname>\<assemblyname>.DLL
- \\<appdir>\<assemblyname>\<assemblyname.manifest>
言語固有のサブフォルダーが存在する場合、アプリケーションのディレクトリ構造には、複数の言語でローカライズされたプライベート アセンブリが含まれている可能性があります。 言語固有のサブフォルダーを並べて検索し、アプリケーションで指定された言語または使用可能な最適な言語が使用されていることを確認します。 言語固有のサブフォルダーは、言語カルチャまたは言語を指定する DHTML 言語コードの文字列を使用して名前が付けられます。 言語固有のサブフォルダーが存在する場合は、次のシーケンスを使用して、次の場所でプライベート アセンブリを並べて検索します。
- WinSxS フォルダーを並べて検索します。
- \\<appdir>\<language-culture>\<assemblyname>.DLL
- \\<appdir>\<language-culture>\<assemblyname.manifest>
- \\<appdir>\<language-culture>\<assemblyname>\<assemblyname>.DLL
- \\<appdir>\<language-culture>\<assemblyname>\<assemblyname.manifest>
サイド バイ サイド検索シーケンスは、アセンブリの名前を持つ DLL ファイルを検索し、アセンブリの名前を持つマニフェスト ファイルを検索する前に停止することに注意してください。 DLL であるプライベート アセンブリを処理する推奨される方法は、アセンブリ マニフェストをリソースとして DLL ファイルに配置することです。 リソース ID は 1 である必要があり、プライベート アセンブリの名前は DLL の名前と同じにすることができます。 たとえば、DLL の名前がMICROSOFT.WINDOWS.MYSAMPLE.DLLされている場合、アセンブリのマニフェストの assemblyIdentity 要素で使用される name 属性の値も Microsoft である可能性があります。Windows.mysample. 別の方法として、アセンブリ マニフェストを別のファイルに配置することもできますが、アセンブリとそのマニフェストの名前は DLL の名前とは異なる必要があります。 たとえば、Microsoft などです。Windows.mysampleAsm, Microsoft.Windows.mysampleAsm.manifest、および MICROSOFT.WINDOWS.MYSAMPLE.DLL。
たとえば、myapp がドライブ c のルートにインストールされていて、フランス語 -ベルギー語で myasm を必要とする場合、side-by-side は次のシーケンスを使用して、myasm のローカライズされたインスタンスに対する最適な近似値を検索します。
- WinSxS で fr-be バージョンを並べて検索します。
- c:\myapp\fr-be\myasm.dll
- c:\myapp\fr-be\myasm.manifest
- c:\myapp\fr-be\myasm\myasm.dll
- c:\myapp\fr-be\myasm\myasm.manifest
- WinSxS で fr バージョンを並べて検索します。
- c:\myapp\fr\myasm.dll
- c:\myapp\fr\myasm.manifest
- c:\myapp\fr\myasm\myasm.dll
- c:\myapp\fr\myasm\myasm.manifest
- 並べて WinSxS で en-us バージョンを検索します。
- c:\myapp\en-us\myasm.dll
- c:\myapp\en-us\myasm.manifest
- c:\myapp\en-us\myasm\myasm.dll
- c:\myapp\en-us\myasm\myasm.manifest
- 並べて WinSxS で en バージョンを検索します。
- c:\myapp\en\myasm.dll
- c:\myapp\en\myasm.manifest
- c:\myapp\en\myasm\myasm.dll
- c:\myapp\en\myasm\myasm.manifest
- WinSxS で言語なしバージョンを並べて検索します。
- c:\myapp\myasm.dll
- c:\myapp\myasm.manifest
- c:\myapp\myasm\myasm.dll
- c:\myapp\myasm\myasm.manifest
並列検索がアセンブリの言語に依存しないバージョンに達し、システムに多言語ユーザー インターフェイス (MUI) バージョンのWindowsが存在する場合は、side-by-side で assemblyname.mui> に<バインドしようとします。 検索がアセンブリのローカライズされたバージョンに<達した場合、side-by-side では assemblyname.mui> へのバインドは試行されません。 言語に依存しない アセンブリのアセンブリ マニフェスト には、 assemblyIdentity 要素に言語属性はありません。 side-by-side が言語に依存しないアセンブリに到達し、MUI がインストールされている場合は、assemblyname.mui> に対して次のシーケンス<を使用して、次の場所を並べて検索します。 言語が検索されない場合を除き<、アセンブリがカルチャに依存しない>場合は、並べて同じ検索シーケンスを使用します。
- 並べて WinSxS フォルダーで assemblyname.mui> を<検索します。
- \\<user の language-culture>\<assemblyname.mui>
- \\<user's language>\<assemblyname.mui>
- \\<system の language-culture>\<assemblyname.mui>
- \\<system の言語>\<assemblyname.mui>
- \\<no language>\<assemblyname.mui>
たとえば、並列検索で c:\myapp\myasm\myasm.manifest でプライベート アセンブリが見つかり、myasm が言語に依存しないアセンブリである場合です。 次に、次のシーケンスを使用して myasm.mui を検索します。 サイド バイ サイドでは、言語に依存しない MUI アセンブリは検索されないことに注意してください。
- 並べて WinSxS を検索して、MUI アセンブリの fr-be バージョンを検索します。
- c:\myapp\fr-be\myasm.mui.dll
- c:\myapp\fr-be\myasm.mui.manifest
- c:\myapp\fr-be\myasm\myasm.mui.dll
- c:\myapp\fr-be\myasm\myasm.mui.manifest
- 並べて WinSxS を検索して、MUI アセンブリの fr バージョンを検索します。
- c:\myapp\fr\myasm.mui.dll
- c:\myapp\fr\myasm.mui.manifest
- c:\myapp\fr\myasm\myasm.mui.dll
- c:\myapp\fr\myasm\myasm.mui.manifest
- 並べて WinSxS を検索して、EN-us バージョンの MUI アセンブリを検索します。
- c:\myapp\en-us\myasm.mui.dll
- c:\myapp\en-us\myasm.mui.manifest
- c:\myapp\en-us\myasm\myasm.mui.dll
- c:\myapp\en-us\myasm\myasm.mui.manifest
- 並べて WinSxS を検索して、MUI アセンブリの en バージョンを検索します。
- c:\myapp\en\myasm.mui.dll
- c:\myapp\en\myasm.mui.manifest
- c:\myapp\en\myasm\myasm.mui.dll
- c:\myapp\en\myasm\myasm.mui.manifest