Urutan Pencarian Perakitan

Jika aplikasi yang terisolasi menentukan dependensi rakitan, terlebih dahulu mencari perakitan di antara rakitan bersama di folder WinSxS. Jika rakitan yang diperlukan tidak ditemukan, secara berdampingan, maka cari rakitan privat yang diinstal dalam folder struktur direktori aplikasi.

Rakitan privat dapat disebarkan di lokasi berikut dalam struktur direktori aplikasi:

  • Di folder aplikasi. Biasanya, ini adalah folder yang berisi file yang dapat dieksekusi aplikasi.
  • Dalam subfolder di folder aplikasi. Subfolder harus memiliki nama yang sama dengan rakitan.
  • Dalam subfolder khusus bahasa di folder aplikasi. Nama subfolder adalah string kode bahasa DHTML yang menunjukkan budaya bahasa atau bahasa.
  • Dalam subfolder subfolder khusus bahasa di folder aplikasi. Nama subfolder yang lebih tinggi adalah string kode bahasa DHTML yang menunjukkan budaya bahasa atau bahasa. Subfolder yang lebih dalam memiliki nama yang sama dengan rakitan.

Pertama kali berdampingan mencari rakitan privat, ini menentukan apakah subfolder khusus bahasa ada dalam struktur direktori aplikasi. Jika tidak ada subfolder khusus bahasa, cari rakitan privat secara berdampingan di lokasi berikut menggunakan urutan berikut.

  1. Secara berdampingan mencari folder WinSxS.
  2. \\<appdir>\<assemblyname>.DLL
  3. \\<appdir>\<assemblyname.manifest>
  4. \\<appdir>\<assemblyname>\<assemblyname>.DLL
  5. \\<appdir>\<assemblyname>\<assemblyname.manifest>

Jika subfolder khusus bahasa ada, struktur direktori aplikasi mungkin berisi rakitan privat yang dilokalkan dalam beberapa bahasa. Secara berdampingan mencari subfolder khusus bahasa untuk memastikan bahwa aplikasi menggunakan bahasa yang ditentukan atau bahasa terbaik yang tersedia. Subfolder khusus bahasa dinamai menggunakan string kode bahasa DHTML yang menentukan budaya bahasa atau bahasa. Jika subfolder khusus bahasa ada, secara berdampingan mencari perakitan privat di lokasi berikut menggunakan urutan berikut.

  1. Secara berdampingan mencari folder WinSxS.
  2. \\<appdir>\<language-culture>\<assemblyname>.DLL
  3. \\<appdir>\<language-culture>\<assemblyname.manifest>
  4. \\<appdir>\<language-culture>\<assemblyname>\<assemblyname>.DLL
  5. \\<appdir>\<language-culture>\<assemblyname>\<assemblyname.manifest>

Perhatikan bahwa urutan pencarian berdampingan menemukan file DLL dengan nama assembly dan berhenti sebelum mencari file manifes yang memiliki nama assembly. Cara yang disarankan untuk menangani rakitan privat yang merupakan DLL adalah dengan menempatkan manifes perakitan dalam file DLL sebagai sumber daya. ID sumber daya harus sama dengan 1 dan nama rakitan privat mungkin sama dengan nama DLL. Misalnya, jika nama DLL MICROSOFT.WINDOWS.MYSAMPLE.DLL, nilai atribut nama yang digunakan dalam elemen assemblyIdentity dari manifes assembly mungkin juga Microsoft.Windows.mysample. Sebagai alternatif, Anda dapat menempatkan manifes perakitan dalam file terpisah, namun, nama perakitan dan manifesnya kemudian harus berbeda dari nama DLL. Misalnya, Microsoft.Windows.mysampleAsm, Microsoft.Windows.mysampleAsm.manifest, dan MICROSOFT.WINDOWS.MYSAMPLE.DLL.

Misalnya, jika myapp diinstal di akar drive c: dan memerlukan myasm dalam bahasa Prancis-Belgia, berdampingan menggunakan urutan berikut untuk mencari perkiraan terbaik ke instans myasm yang dilokalkan.

  1. Pencarian berdampingan WinSxS untuk versi fr-be.
  2. c:\myapp\fr-be\myasm.dll
  3. c:\myapp\fr-be\myasm.manifest
  4. c:\myapp\fr-be\myasm\myasm.dll
  5. c:\myapp\fr-be\myasm\myasm.manifest
  6. Pencarian berdampingan WinSxS untuk versi fr.
  7. c:\myapp\fr\myasm.dll
  8. c:\myapp\fr\myasm.manifest
  9. c:\myapp\fr\myasm\myasm.dll
  10. c:\myapp\fr\myasm\myasm.manifest
  11. Pencarian berdampingan WinSxS untuk versi en-us.
  12. c:\myapp\en-us\myasm.dll
  13. c:\myapp\en-us\myasm.manifest
  14. c:\myapp\en-us\myasm\myasm.dll
  15. c:\myapp\en-us\myasm\myasm.manifest
  16. Pencarian berdampingan WinSxS untuk versi en.
  17. c:\myapp\en\myasm.dll
  18. c:\myapp\en\myasm.manifest
  19. c:\myapp\en\myasm\myasm.dll
  20. c:\myapp\en\myasm\myasm.manifest
  21. Pencarian berdampingan WinSxS untuk versi tanpa bahasa.
  22. c:\myapp\myasm.dll
  23. c:\myapp\myasm.manifest
  24. c:\myapp\myasm\myasm.dll
  25. c:\myapp\myasm\myasm.manifest

Jika pencarian berdampingan mencapai versi rakitan bahasa netral, dan versi Antarmuka Pengguna Multilanguage (MUI) Windows ada di sistem, secara berdampingan kemudian mencoba mengikat assemblyname.mui><. Berdampingan tidak mencoba mengikat ke <assemblyname.mui> jika pencarian mencapai versi rakitan yang dilokalkan. Manifes perakitan rakitan bahasa netral tidak akan memiliki atribut bahasa dalam elemen assemblyIdentity-nya. Jika berdampingan mencapai rakitan bahasa netral, dan MUI diinstal, secara berdampingan mencari lokasi berikut menggunakan urutan berikut untuk <assemblyname.mui>. Berdampingan menggunakan urutan pencarian yang sama jika assembly netral budaya, kecuali <tidak ada bahasa> yang tidak dicari.

  1. Secara berdampingan mencari folder WinSxS untuk <assemblyname.mui>.
  2. \\<language-culture>\<assemblyname.mui> pengguna
  3. \\<bahasa> pengguna\<assemblyname.mui>
  4. \\<system's language-culture>\<assemblyname.mui>
  5. \\<system's language>\<assemblyname.mui>
  6. \\<tidak ada bahasa>\<assemblyname.mui>

Misalnya, jika pencarian berdampingan menemukan rakitan privat di c:\myapp\myasm\myasm.manifest, dan myasm adalah rakitan netral bahasa. Berdampingan kemudian menggunakan urutan berikut untuk mencari myasm.mui. Perhatikan bahwa berdampingan tidak akan mencari rakitan MUI netral bahasa.

  1. Pencarian berdampingan WinSxS untuk versi fr-be dari rakitan MUI.
  2. c:\myapp\fr-be\myasm.mui.dll
  3. c:\myapp\fr-be\myasm.mui.manifest
  4. c:\myapp\fr-be\myasm\myasm.mui.dll
  5. c:\myapp\fr-be\myasm\myasm.mui.manifest
  6. Pencarian berdampingan WinSxS untuk versi fr rakitan MUI.
  7. c:\myapp\fr\myasm.mui.dll
  8. c:\myapp\fr\myasm.mui.manifest
  9. c:\myapp\fr\myasm\myasm.mui.dll
  10. c:\myapp\fr\myasm\myasm.mui.manifest
  11. Pencarian berdampingan WinSxS untuk versi en-us dari rakitan MUI.
  12. c:\myapp\en-us\myasm.mui.dll
  13. c:\myapp\en-us\myasm.mui.manifest
  14. c:\myapp\en-us\myasm\myasm.mui.dll
  15. c:\myapp\en-us\myasm\myasm.mui.manifest
  16. Pencarian berdampingan WinSxS untuk versi en dari rakitan MUI.
  17. c:\myapp\en\myasm.mui.dll
  18. c:\myapp\en\myasm.mui.manifest
  19. c:\myapp\en\myasm\myasm.mui.dll
  20. c:\myapp\en\myasm\myasm.mui.manifest