Richtlinien zum Erstellen von nebenseitigen Assemblys

In den folgenden Richtlinien wird das Erstellen ihrer eigenen com- oder win32-assemblyseitigen Assemblys diskutiert. Möglicherweise müssen Sie keine eigenen nebenseitigen Assemblys erstellen, wenn die benötigte Funktionalität von einer der unterstützten microsoft-side-by-side-Assemblys bereitgestellt wird. Verwenden Sie in diesem Fall die von Microsoft bereitgestellten Assemblys, und befolgen Sie die Verfahren für die Verwendung von nebenseitigen Assemblys in Using Isolated Applications and Side-by-side Assemblies.

Überlegen Sie zunächst, ob Ihre Komponente einen geeigneten Kandidaten für eine side-by-side-Assembly macht. Weitere Informationen finden Sie unter Sollte eine freigegebene Komponente als side-by-side-Assembly zur Verfügung stehen?

Befolgen Sie die folgenden Richtlinien, um eine side-by-side-Assembly zu erstellen:

  • Entscheiden Sie, welche Ressourcen in die Assembly einschließt. Denken Sie daran, dass eine Assembly aus einer oder mehreren Dateien besteht, die anwendungen und kunden immer zusammen bereitgestellt werden. Die Assembly dient als grundlegende Einheit für Benennung, Bindung, Versionseinstellungen, Bereitstellung und Standardkonfiguration. Wenn Sie sich im Allgemeinen nicht sicher sind, ob zwei Ressourcen zu derselben Assembly gehören, wird empfohlen, sie in separate Assemblys zu übergehen. In der Regel besteht eine nebenseitige Assembly aus einer einzelnen DLL.
  • Erstellen Sie ein Assemblymanifest für die Assembly. Das Manifest sollte das COM-Objekt oder die Typbibliotheken in der Assembly beschreiben. Weitere Informationen dazu, was in einem Assemblymanifest verfasst werden soll, finden Sie unter Assemblymanifesten.
  • Bewerten Sie die Verwendung von -Objekten, wenn mehr als eine Version Der Assembly auf dem System ausgeführt wird. Bestimmen Sie, ob verschiedene Versionen der Assembly separate Datenstrukturen erfordern, z. B. speicherzuordnungsbasierte Dateien, Named Pipes, registrierte Windows-Nachrichten und -Klassen, freigegebener Arbeitsspeicher, Semaphore, Mutexe und Hardwaretreiber. Alle Datenstrukturen, die über Assemblyversionen hinweg verwendet werden, müssen abwärtskompatible Versionen sein. Entscheiden Sie, welche Datenstrukturen versionsübergreifend verwendet werden können und welche Datenstrukturen für eine Version privat sein müssen. Bestimmen Sie, ob freigegebene Datenstrukturen separate Synchronisierungsobjekte wie Semaphore und Mutexe erfordern.
  • Erstellen Sie ihre DLL so, dass sie gut als seiteseitige Assembly funktioniert, indem Sie sich an die Richtlinien unter Erstellen einer DLL für eine side-by-side-Assembly halten.
  • Erstellen Sie eine Reihe von Headerdateien und Hilfsfunktionen, um eine einfache Möglichkeit zum Erstellen von Versionsregistrierungsschlüsseln zu bieten, die den Assemblyzustand enthalten. Assemblys speichern ihre Zustandseinstellungen häufig in Registrierungsschlüsseln. Registrierungseinstellungen müssen auf basis einer einzelnen Version geschrieben werden, um mehrere Assemblyversionen zu isolieren, die gleichzeitig ausgeführt werden können. Entwerfen Sie die nebenseitige Assembly und DLL so, dass sie den Zustand der Assembly während der Szenarien für die side-by-side-Freigabe ordnungsgemäß speichern und verarbeiten. Befolgen Sie die Richtlinien unter Erstellungszustands-Storage für nebenseitige Assemblys.
  • Entwickler von Anwendungen, die private Assemblys verwenden, sollten das Anwendungsverzeichnis schützen. Wenn die Anwendung mithilfe des Windows Installers installiert wird, kann das Anwendungsverzeichnis mithilfe der LockPermissions-Tabelle gesichert werden. In der Regel erhält das System Lese-, Schreib- und Ausführungszugriff auf private Assemblys. allen anderen Prozessen wird nur Ausführungs- und Lesezugriff erteilt.
  • Testen Sie die Assembly mithilfe von Szenarien mit der side-by-side-Freigabe, um sicherzustellen, dass es sich um eine gültige side-by-side-Assembly handelt. Eine erfolgreiche Installation der Assembly reicht nicht aus, um zu gewährleisten, dass sie wie erwartet funktioniert.
  • Übernehmen Sie eine Methode zum Nummerieren von Updates für Ihre Assembly. Jede Assembly ist einer vierteilten Versionsnummer zugeordnet. Die Haupt-, Neben-, Build- und Revisionsteile sind von links nach rechts durch Zeiträume getrennt. Ändern Sie die Haupt- oder Nebenversion einer Assembly für eine Version, die mit früheren Versionen nicht kompatibel ist. Ändern Sie nur die Build- und Revisionsteile für abwärtskompatible Änderungen an der Assembly. Beispielsweise könnte ein Entwickler eine Nummerierungsmethode übernehmen, bei der alle 1.0.0-Methoden verwendet werden. * Versionsnummern beziehen sich auf Updateversionen auf Assemblyversion 1.0.0.0.