Assemblysuchsequenz

Wenn eine isolierte Anwendung eine Assemblyabhängigkeit angibt, sucht zuerst parallel nach der Assembly unter den freigegebenen Assemblys im WinSxS-Ordner. Wenn die erforderliche Assembly nicht gefunden wird, wird parallel nach einer privaten Assembly gesucht, die in einem Ordner der Verzeichnisstruktur der Anwendung installiert ist.

Private Assemblys können an den folgenden Speicherorten in der Verzeichnisstruktur der Anwendung bereitgestellt werden:

  • Im Ordner der Anwendung. In der Regel ist dies der Ordner, der die ausführbare Datei der Anwendung enthält.
  • In einem Unterordner im Ordner der Anwendung. Der Unterordner muss den gleichen Namen wie die Assembly aufweisen.
  • In einem sprachspezifischen Unterordner im Ordner der Anwendung. Der Name des Unterordners ist eine Zeichenfolge mit DHTML-Sprachcodes, die eine Sprachkultur oder Sprache angeben.
  • In einem Unterordner eines sprachspezifischen Unterordners im Ordner der Anwendung. Der Name des höheren Unterordners ist eine Zeichenfolge mit DHTML-Sprachcodes, die eine Sprachkultur oder Sprache angeben. Der untere Unterordner hat den gleichen Namen wie die Assembly.

Bei der ersten parallelen Suche nach einer privaten Assembly wird bestimmt, ob ein sprachspezifischer Unterordner in der Verzeichnisstruktur der Anwendung vorhanden ist. Wenn kein sprachspezifischer Unterordner vorhanden ist, sucht parallel nach der privaten Assembly an den folgenden Speicherorten, indem die folgende Sequenz verwendet wird.

  1. Durchsucht den WinSxS-Ordner nebeneinander.
  2. \\<appdir > \ < assemblyname>.DLL
  3. \\<appdir > \ < assemblyname>.manifest
  4. \\<appdir > \ < > \ assemblyname < assemblyname>.DLL
  5. \\<appdir > \ < > \ assemblyname < assemblyname>.manifest

Wenn ein sprachspezifischer Unterordner vorhanden ist, kann die Verzeichnisstruktur der Anwendung die in mehreren Sprachen lokalisierte private Assembly enthalten. Durchsucht die sprachspezifischen Unterordner nebeneinander, um sicherzustellen, dass die Anwendung die angegebene Sprache oder die beste verfügbare Sprache verwendet. Sprachspezifische Unterordner werden mithilfe einer Zeichenfolge von DHTML-Sprachcodes benannt, die eine Sprachkultur oder Sprache angeben. Wenn ein sprachspezifischer Unterordner vorhanden ist, sucht parallel an den folgenden Stellen mithilfe der folgenden Sequenz nach der privaten Assembly.

  1. Durchsucht den WinSxS-Ordner nebeneinander.
  2. \\<appdir > \ < > \ Sprachkultur < assemblyname>.DLL
  3. \\<appdir > \ < > \ Sprachkultur < assemblyname>.manifest
  4. \\<appdir > \ < > \ Sprachkultur < > \ assemblyname < assemblyname>.DLL
  5. \\<appdir > \ < > \ Sprachkultur < > \ assemblyname < assemblyname>.manifest

Beachten Sie, dass die Nebensuchsequenz eine DLL-Datei mit dem Namen der Assembly findet und beendet wird, bevor nach einer Manifestdatei mit dem Namen der Assembly gesucht wird. Die empfohlene Methode zum Behandeln einer privaten Assembly, bei der es sich um eine DLL handelt, besteht darin, das Assemblymanifest in der DLL-Datei als Ressource zu speichern. Die Ressourcen-ID muss gleich 1 sein, und der Name der privaten Assembly kann mit dem Namen der DLL übereinstimmen. Wenn der Name der DLL beispielsweise MICROSOFT.WINDOWS.MYSAMPLE.DLL ist, kann der Wert des Namensattributs, das im assemblyIdentity-Element des Manifests der Assembly verwendet wird, auch Microsoft sein. Windows.mysample. Alternativ können Sie das Assemblymanifest in einer separaten Datei speichern. Der Name der Assembly und ihres Manifests muss sich dann jedoch vom Namen der DLL unterscheiden. Beispiel: Microsoft. Windows.mysampleAsm, Microsoft. Windows.mysampleAsm.manifest und MICROSOFT.WINDOWS.MYSAMPLE.DLL.

Wenn myapp beispielsweise im Stammverzeichnis von Laufwerk c: installiert ist und myasm in Französisch-Französisch erfordert, wird parallel die folgende Sequenz verwendet, um nach der besten Näherung an eine lokalisierte Instanz von myasm zu suchen.

  1. WinSxS wird nebeneinander nach der Fr-be-Version durchsucht.
  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. WinSxS wird nebeneinander nach der fr-Version durchsucht.
  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. WinSxS wird seiteseitig nach der en-us-Version durchsucht.
  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. WinSxS wird nebeneinander nach der en-Version durchsucht.
  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 wird nebeneinander nach der Sprachversion no gesucht.
  22. c: \ myapp \myasm.dll
  23. c: \ myapp \ myasm.manifest
  24. c: \ myapp \ myasm \myasm.dll
  25. c: \ myapp \ myasm \ myasm.manifest

Wenn die seitenseitige Suche eine sprachneutrale Version der Assembly erreicht und eine MULTIlanguage Benutzeroberfläche -Version (LDAP) von Windows auf dem System vorhanden ist, wird versucht, sich nebeneinander an <Assemblynamen>.apk zu binden. Es wird nicht versucht, sich nebeneinander an <Assemblynamen>.apk zu binden, wenn die Suche eine lokalisierte Version der Assembly erreicht. Das Assemblymanifest einer sprachneutralen Assembly enthält kein Sprachattribut im assemblyIdentity-Element. Wenn eine sprachneutrale Assembly nebeneinander erreicht wird und DIE ASSEMBLY installiert ist, durchsucht side-by-side die folgenden Speicherorte mithilfe der folgenden Sequenz nach <Assemblynamen>.sucht. Parallel verwendet dieselbe Suchsequenz, wenn die Assembly kulturneutral ist, außer <keine Sprache> nicht durchsucht wird.

  1. Durchsucht den WinSxS-Ordner nebeneinander nach <Assemblynamen>.emails.
  2. \\<Sprachkultur des Benutzers > \ < assemblyname>.emails
  3. \\<Sprache des Benutzers > \ < assemblyname>.js
  4. \\<Sprachkultur des Systems > \ < assemblyname>.emails
  5. \\<Sprache des Systems > \ < assemblyname>.emails
  6. \\<keine Sprache > \ < assemblyname>.emails

Wenn z. B. die suche nebeneinander die private Assembly unter c: \ \ myapp myasm \ myasm.manifest findet und myasm eine sprachneutrale Assembly ist. Anschließend wird die folgende Sequenz verwendet, um nach "myasm.mic" zu suchen. Beachten Sie, dass nicht nach einer sprachneutralen ASSEMBLE-Assembly gesucht wird.

  1. WinSxS wird nebeneinander nach der fr-be-Version der CSV-Assembly durchsucht.
  2. c: \ myapp \ fr-be \myasm.mui.dll
  3. c: \ myapp \ fr-be \ myasm.migrations.manifest
  4. c: \ myapp \ fr-be \ myasm \myasm.mui.dll
  5. c: \ myapp \ fr-be \ myasm \ myasm.migrations.manifest
  6. WinSxS wird nebeneinander nach der fr-Version der CSV-Assembly durchsucht.
  7. c: \ myapp \ fr \myasm.mui.dll
  8. c: \ myapp \ fr \ myasm.migrations.manifest
  9. c: \ myapp \ fr \ myasm \myasm.mui.dll
  10. c: \ myapp \ fr \ myasm \ myasm.migrations.manifest
  11. WinSxS wird seiteseitig nach der en-us-Version der CSV-Assembly durchsucht.
  12. c: \ myapp \ en-us \myasm.mui.dll
  13. c: \ myapp \ en-us \ myasm.manifest
  14. c: \ myapp \ en-us \ myasm \myasm.mui.dll
  15. c: \ myapp \ en-us \ myasm \ myasm.migrations.manifest
  16. WinSxS wird nebeneinander nach der en-Version der CSV-Assembly durchsucht.
  17. c: \ myapp \ en \myasm.mui.dll
  18. c: \ myapp \ en \ myasm.adr.manifest
  19. c: \ myapp \ en \ myasm \myasm.mui.dll
  20. c: \ myapp \ en \ myasm \ myasm.migrations.manifest