Delen via


Zoekvolgorde voor assembly's

Als een geïsoleerde toepassing een assembly-afhankelijkheid opgeeft, zoekt u eerst naast elkaar naar de assembly onder de gedeelde assembly's in de map WinSxS. Als de vereiste assembly niet wordt gevonden, wordt er gezocht naar een persoonlijke assembly die is geïnstalleerd in een map binnen de applicatie.

Privéassembly's kunnen worden geïmplementeerd op de volgende locaties in de directorystructuur van de applicatie:

  • In de map van de toepassing. Dit is meestal de map met het uitvoerbare bestand van de toepassing.
  • In een submap in de map van de toepassing. De submap moet dezelfde naam hebben als de assembly.
  • In een taalspecifieke submap in de map van de toepassing. De naam van de submap is een tekenreeks met DHTML-taalcodes die een taalcultuur of taal aangeven.
  • In een submap van een taalspecifieke submap in de map van de toepassing. De naam van de hogere submap is een tekenreeks met DHTML-taalcodes die een cultuur of taal aangeven. De diepere submap heeft dezelfde naam als de assemblage.

De eerste keer dat naast elkaar wordt gezocht naar een privéassembly, wordt bepaald of er een taalspecifieke submap bestaat in de mapstructuur van de toepassing. Als er geen taalspecifieke submap bestaat, voert u parallel zoekopdrachten uit naar de privéassembly op de volgende locaties in de volgende volgorde.

  1. In de WinSxS-map worden zoekopdrachten naast elkaar uitgevoerd.
  2. \\<appdir>\<assemblyname>.DLL
  3. \\<appdir>\<assemblyname>.manifest
  4. \\<appdir>\<assemblyname>\<assemblyname>.DLL
  5. \\<appdir>\<assemblyname>\<assemblyname>.manifest

Als er een taalspecifieke submap bestaat, kan de mapstructuur van de toepassing de persoonlijke assembly bevatten die in meerdere talen is gelokaliseerd. Hiermee worden de taalspecifieke submappen naast elkaar doorzocht om ervoor te zorgen dat de toepassing gebruikmaakt van de opgegeven taal of de best beschikbare taal. Taalspecifieke submappen worden benoemd met behulp van een tekenreeks met DHTML-taalcodes die een taalcultuur of taal opgeven. Als er een taalspecifieke submap bestaat, worden parallelle zoekopdrachten uitgevoerd naar de privé-assembly op de volgende locaties volgens de aangegeven volgorde.

  1. Hiermee wordt in de WinSxS-map naast elkaar gezocht.
  2. \\<appdir>\<taal-cultuur>\<assemblynaam>.DLL
  3. \\<appdir>\<taalcultuur>\<assemblynaam>.manifest
  4. \\<appdir>\<language-culture>\<assemblyname>\<assemblyname>.DLL
  5. \\<appdir>\<taalcultuur>\<assemblynaam>\<assemblynaam>.manifest

Houd er rekening mee dat de zoekvolgorde naast elkaar een DLL-bestand met de naam van de assembly vindt en stopt voordat wordt gezocht naar een manifestbestand met de naam van de assembly. De aanbevolen manier om een privéassembly te verwerken die een DLL is, is door het assemblymanifest in het DLL-bestand als een resource te plaatsen. De resource-id moet gelijk zijn aan 1 en de naam van de privéassembly mag hetzelfde zijn als de naam van het DLL-bestand. Als de naam van het DLL-bestand bijvoorbeeld MICROSOFT.WINDOWS.MYSAMPLE.DLL is, kan de waarde van het naamkenmerk dat wordt gebruikt in het assemblyIdentity element van het manifest van de assembly ook Microsoft.Windows.mysample zijn. Als alternatief kunt u het assemblymanifest in een afzonderlijk bestand plaatsen, maar de naam van de assembly en het bijbehorende manifest moet vervolgens afwijken van de naam van het DLL-bestand. Bijvoorbeeld Microsoft.Windows.mysampleAsm, Microsoft.Windows.mysampleAsm.manifest en MICROSOFT.WINDOWS.MYSAMPLE.DLL.

Als myapp bijvoorbeeld is geïnstalleerd in de hoofdmap van station c:\ en myasm in de Frans-Belgische versie nodig heeft, wordt de volgende volgorde gebruikt om te zoeken naar de best mogelijke benadering van een gelokaliseerde versie van myasm.

  1. Er wordt in WinSxS parallel gezocht naar de fr-be versie.
  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. Hiermee wordt in WinSxS parallel gezocht naar de fr-versie.
  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. In WinSxS wordt tegelijkertijd gezocht naar de en-us-versie.
  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. Hiermee wordt in WinSxS naast elkaar gezocht naar de en-versie.
  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. WinSxS wordt doorzocht op de versie zonder specifieke taal.
  22. c:\myapp\myasm.dll
  23. c:\myapp\myasm.manifest
  24. c:\myapp\myasm\myasm.dll
  25. c:\myapp\myasm\myasm.manifest

nl-NL: Als een taalneutrale versie van de assembly wordt bereikt door naast elkaar zoeken en een Windows-versie met Multilanguage User Interface (MUI) aanwezig is op het systeem, probeert het naast elkaar zoeken vervolgens te binden aan <assemblynaam>.mui. Er wordt niet gepoogd om zij-aan-zij verbinding te maken met <assemblynaam>.mui als de zoekopdracht een gelokaliseerde versie van de assembly bereikt. Het assemblymanifest van een taalneutrale assembly heeft geen taalkenmerk in het assemblyIdentity-element. Als 'side-by-side' een taalneutrale assembly bereikt en MUI is geïnstalleerd, zoekt 'side-by-side' op de volgende locaties met behulp van de volgende volgorde voor <assemblynaam>.mui. Bij gebruik van side-by-side wordt dezelfde zoekvolgorde toegepast als de assembly cultuurneutraal is, behalve dat <taal> niet wordt doorzocht.

  1. Hiermee wordt in de WinSxS-map een parallelle zoektocht gedaan naar <assemblynaam>.mui.
  2. \\<taalcultuur van de gebruiker>\<assemblynaam>.mui
  3. \\<Taal van de gebruiker>\<assemblynaam>.mui
  4. \\<taalcultuur van het systeem>\<assemblynaam>.mui
  5. \\<systeemtaal>\<assemblynaam>.mui
  6. \\<geen taal>\<assemblynaam>.mui

Als bijvoorbeeld parallel zoeken de privé-samenstelling vindt op c:\myapp\myasm\myasm.manifest en myasm een taalneutrale samenstelling is. De side-by-side functionaliteit gebruikt vervolgens de volgende reeks om myasm.mui te zoeken. Houd er rekening mee dat een side-by-side configuratie niet naar een taalneutraal MUI-assembly zoekt.

  1. In WinSxS wordt tegelijkertijd gezocht naar de fr-be-versie van de MUI-assembly.
  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. Hiermee wordt parallel binnen WinSxS gezocht naar de FR-versie van de MUI-assembly.
  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. Er wordt parallel in WinSxS gezocht naar de en-us versie van de MUI-assembly.
  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. Hiermee wordt in WinSxS parallel gezocht naar de Engelse versie van de MUI-assembly.
  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