Sekwencja wyszukiwania zestawów
Jeśli aplikacja izolowana określa zależność zestawu, najpierw wyszukuje zestaw obok siebie wśród zestawów udostępnionych w folderze WinSxS. Jeśli wymagany zestaw nie zostanie znaleziony, obok siebie wyszukuje zestaw prywatny zainstalowany w folderze struktury katalogów aplikacji.
Prywatne zestawy można wdrożyć w następujących lokalizacjach w strukturze katalogów aplikacji:
- W folderze aplikacji. Zazwyczaj jest to folder zawierający plik wykonywalny aplikacji.
- W podfolderze w folderze aplikacji. Podfolder musi mieć taką samą nazwę jak zestaw.
- W podfolderze specyficznym dla języka w folderze aplikacji. Nazwa podfolderu to ciąg kodów językowych DHTML wskazujących kulturę lub język.
- W podfolderze folderu przeznaczonego dla danego języka w folderze aplikacji. Nazwa podfolderu nadrzędnego jest ciągiem kodów językowych DHTML wskazujących język lub kulturę językową. Głębszy podfolder ma taką samą nazwę jak kompilacja.
Przy pierwszym równoległym wyszukiwaniu zestawów prywatnych ustala, czy katalog dla konkretnego języka istnieje w strukturze katalogów aplikacji. Jeśli podfolder specyficzny dla języka nie istnieje, obok siebie wyszukuje zestaw prywatny w następujących lokalizacjach przy użyciu następującej sekwencji.
- Mechanizm Side-by-Side przeszukuje folder WinSxS.
- \\<appdir>\<nazwa zestawu>.DLL
- \\<appdir>\<nazwa zestawu>.manifest
- \\<appdir>\<nazwa zestawu>\<nazwa zestawu>.DLL
- \\<appdir>\<nazwa zestawu>\<nazwa zestawu>.manifest
Jeśli istnieje podfolder specyficzny dla języka, struktura katalogów aplikacji może zawierać zestaw prywatny zlokalizowany w wielu językach. Obok siebie wyszukuje podfoldery specyficzne dla języka, aby upewnić się, że aplikacja używa określonego języka lub najlepszego dostępnego języka. Podfoldery specyficzne dla języka są nazywane ciągiem kodów języka DHTML, które określają kulturę lub język języka. Jeśli istnieje podfolder specyficzny dla języka, obok siebie wyszukuje zestaw prywatny w następujących lokalizacjach przy użyciu następującej sekwencji.
- Obok siebie wyszukuje folder WinSxS.
- \\<appdir>\<language-culture>\<nazwa zestawu>.DLL
- \\<appdir>\<language-culture>\<nazwa zestawu>.manifest
- \\<appdir>\<language-culture>\<nazwa zestawu>\<nazwa zestawu>.DLL
- \\<appdir>\<language-culture>\<nazwa zestawu>\<nazwa zestawu>.manifest
Należy pamiętać, że sekwencja wyszukiwania równoległego znajduje plik DLL o nazwie zestawu i zatrzymuje się przed wyszukaniem pliku manifestu o nazwie zestawu. Zalecanym sposobem obsługi zestawu prywatnego, który jest biblioteką DLL, jest umieszczenie manifestu zestawu w pliku DLL jako zasobu. Identyfikator zasobu musi być równy 1, a nazwa zestawu prywatnego może być taka sama jak nazwa biblioteki DLL. Jeśli na przykład nazwa biblioteki DLL to MICROSOFT. WINDOWS. MYSAMPLE.DLL wartość atrybutu name używanego w assemblyIdentity element manifestu zestawu może być również Microsoft.Windows.mysample. Alternatywnie można umieścić manifest zestawu w osobnym pliku, jednak nazwa zestawu i jego manifest muszą być inne niż nazwa biblioteki DLL. Na przykład Microsoft.Windows.mysampleAsm, Microsoft.Windows.mysampleAsm.manifest i MICROSOFT. WINDOWS. MYSAMPLE.DLL.
Na przykład, jeśli aplikacja myapp jest zainstalowana w katalogu głównym dysku C: i wymaga wersji myasm w języku francusko-belgijskim, mechanizm używa następującej sekwencji, aby wyszukać najlepsze przybliżenie zlokalizowanej wersji myasm.
- WinSxS wyszukuje równolegle wersję 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
- Porównawcze wyszukiwanie WinSxS dla wersji fr.
- c:\myapp\fr\myasm.dll
- c:\myapp\fr\myasm.manifest
- c:\myapp\fr\myasm\myasm.dll
- c:\myapp\fr\myasm\myasm.manifest
- Porównawcze wyszukiwania WinSxS dla wersji 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
- Wyszukiwanie równoległe WinSxS dla wersji en.
- c:\myapp\en\myasm.dll
- c:\myapp\en\myasm.manifest
- c:\myapp\en\myasm\myasm.dll
- c:\myapp\en\myasm\myasm.manifest
- Symultaniczne wyszukiwanie w WinSxS dla wersji bez języka.
- c:\myapp\myasm.dll
- c:\myapp\myasm.manifest
- c:\myapp\myasm\myasm.dll
- c:\myapp\myasm\myasm.manifest
Jeśli wyszukiwanie równoległe osiągnie wersję zestawu neutralną względem języka, a w systemie obecna jest wersja Windowsa z Multilanguage User Interface (MUI), wyszukiwanie równoległe próbuje wtedy powiązać się z <nazwa zestawu>.mui. Side-by-side nie próbuje powiązać z <assemblyname>.mui, jeśli wyszukiwanie osiągnie zlokalizowaną wersję modułu. Manifest neutralnego dla języka zestawu nie będzie miał atrybutu języka w elemencie assemblyIdentity. Jeśli równoległe zestawianie osiągnie stan neutralności językowej, a MUI jest zainstalowane, wyszukuje równoległe skojarzenia w następujących lokalizacjach przy użyciu następującej sekwencji dla <nazwa zestawu>.mui. Obok siebie używa tej samej sekwencji wyszukiwania, jeśli zestaw jest neutralny pod względem kultury, z wyjątkiem <nie jest wyszukiwany żaden język>.
- Funkcja wyszukiwania przeszukuje folder WinSxS dla <nazwy zestawu>.mui.
- \\<język-kultura użytkownika><nazwa zestawu>.mui
- \\<język użytkownika>\<nazwa zestawu>.mui
- \\<kultura językowa systemu>\<nazwa zestawu>.mui
- \\<język systemu>\<nazwa zestawu>.mui
- \\<brak języka>\<nazwa zestawu>.mui
Jeśli na przykład wyszukiwanie równoległe znajdzie zestaw prywatny w folderze c:\myapp\myasm\myasm.manifest, a myasm jest zestawem niezależnym językowo. Funkcja side-by-side używa następującej sekwencji, aby wyszukać plik myasm.mui. Należy pamiętać, że zestaw MUI neutralny dla języka nie będzie wyszukiwany obok siebie.
- Przeszukiwanie równoległe WinSxS dla wersji fr-be zestawu MUI.
- 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
- Równoczesne przeszukiwanie WinSxS w poszukiwaniu wersji francuskiej zestawu MUI.
- 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
- Wyszukiwanie równoległe w WinSxS dla en-us wersji zestawu 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
- Równoległe wyszukiwanie w WinSxS dla angielskiej wersji zestawu MUI.
- 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