Mithilfe von Publisher Richtlinienassemblys

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 891030 - Produkte anzeigen, auf die sich dieser Artikel bezieht
ASP.NET Support Voice-Spalte: Verwenden von Publisher Richtlinienassemblys
diese Kolumne an Ihre Bedürfnisse anpassen wir möchten Sie Ihre Ideen zu den Themen zu senden, die Sie interessieren einladen möchten, und behandelt Probleme, die Sie anzeigen möchten, in zukünftigen Knowledge Base-Artikeln und Support Voice-Kolumnen. Sie können Ihre Ideen und ihr Feedback über das Formular Ask For It senden. Es gibt auch eine Verknüpfung zu dem Formular am unteren Rand dieser Spalte.
Dieser Artikel wurde ursprünglich als ASP.NET Support Voice Support Voice-Kolumne im September 2004 veröffentlicht. Dies ist kein standard KB-Artikel.
Alles erweitern | Alles schließen

Auf dieser Seite

EINFÜHRUNG

Erneut Hallo und Willkommen bei der September ' 04-Edition von der Support Voice-Spalte. Ich würde gern Jim Cheshire , einen Supportmitarbeiter hier bei Microsoft Unterstützung von ASP .NET für seine Beiträge danken. Gérard hat sich tolle Ideen für Support Voice-Kolumne und freigeben möchten. Suchen Sie in den nächsten Monaten für Gérards Beiträge, und senden Sie uns wie immer Ihre Vorschläge für zukünftige Spalten. Jim Danke!

Gérard hat mit Microsoft sechs Jahren auf die Teams FrontPage, VB- und ASP.NET gearbeitet. Während dieser Zeit er hat für das Office Developer Center auf MSDN geschrieben, und er ist Autor von einem Buch auf FrontPage Inhalte Edition mithilfe von Microsoft Office FrontPage 2003 . Jim hat auch eine Website, in dem er bietet kostenlose Add-Ins für FrontPage zum Aktivieren von Webentwicklern das Microsoft-Produkten treffen. Hier ist die Website-Adresse:
http://www.jimcosoftware.com
Also bitte Pull von einem Stuhl kick die Schuhe deaktivieren, lesen Sie unsere Rubrik alles mit Publisher Richtlinienassemblys und beachten Sie, dass Sie Ihre Ideen zu uns auch über die "ASK FOR IT" Verknüpfung in jeder Spalte enthalten, die wir Veröffentlichen absenden können.

Jeremy

Mithilfe von Publisher Richtlinienassemblys

Wenn Sie mit COM-Komponenten in Ihren Webanwendungen jemals gearbeitet haben, ist es wahrscheinlich, dass Sie selbst den zählen, die den Empfang von Microsoft .NET Framework und die Leichtigkeit, mit der Sie jetzt Komponenten aktualisieren können, die Ihre Webanwendung verweist, betreibt. In den meisten Fällen ist das Aktualisieren einer Komponente so einfach wie das Ablegen von einen neuen Build, in dem Ordner Bin oder globalen ASSEMBLYCACHE (Global Assembly Cache). Es ist jedoch auch in der Welt .NET möglich, Assemblybindung beim Aktualisieren einer Komponente zu unterbrechen. Glücklicherweise bietet .NET Framework Möglichkeiten, dass Sie Assemblybindung steuern können. Eine leistungsfähige (und nur selten verstanden) Möglichkeit nutzen, die steuern, besteht die Herausgeberrichtlinienassembly. In diesem Artikel wird aufgezeigt, wie Sie eine Assembly für Herausgeberrichtlinien, zum Erzwingen der Anwendung an eine bestimmte Version einer Assembly zu binden, die sich im GAC befindet.

Methoden der Assemblybindung

Bevor ich in die Einzelheiten der Publisher-Richtlinienassemblys ausreicht, ist es wichtig, dass Sie die Methoden verstehen, dass die Assemblybindung unterbrochen werden kann. Jede .NET-Assembly wird mithilfe der vier Merkmale identifiziert:
  • Assemblyname
  • Haupt- oder version
  • Token des öffentlichen Schlüssels
  • Kultur
Wenn Sie eine oder mehrere dieser ändern, wird die Bindung für die Assembly unterbrochen werden. Beispielsweise, wenn Sie Version 1.0.1 einer Komponente in der Microsoft ASP.NET-Anwendung verweisen und Kompilieren die Komponente, die Version 1.0.2, wird ASP.NET automatisch Version 1.0.2 verwendet. Jedoch, wenn Sie die Komponente Version 1.1.0 neu kompilieren, ASP.NET verwendet weiterhin die 1.0.1 Version, obwohl eine höhere Version im GAC installiert wird, da die Assembly Bindung unterbrochen ist, wenn die Nebenversion der Assembly geändert.

In den meisten Fällen ist dies genau das was geschehen soll. Jedoch gibt es möglicherweise Fällen möchten erzwingen, dass Ihre ASP.NET-Anwendung für das eine neue Version verwenden, auch wenn eines der vier identifizierende Merkmale geändert hat. Genommen Sie an, dass Sie ein Entwickler benutzerdefinierte Serversteuerelemente sind. Einige geringfügige Fehler in eine Reihe von Methoden haben einfach in das Serversteuerelement behoben werden. Sie haben auch einige tollen neuen Funktionen hinzugefügt, und stellen Sie sicher, dass Personen in einer vorhandenen Anwendung das Steuerelement verwendet Zugriff auf die neuen Funktionen verfügt möchten. Jedoch aufgrund der Implementierung der Versionskontrolle erhöht Sie Nebenversion Build für die Assembly. Wenn das Steuerelement in den GAC auf dem Server installiert ist, werden ASP.NET-Anwendungen, die gegen die ursprüngliche Version kompiliert wurden die neue Version nicht automatisch verwendet.

Es gibt einige verschiedene Möglichkeiten, die die Anwendung eine bestimmte Version einer Assembly verwenden erzwingen können. Sie können eine Bindungsumleitung in einer web.config-Datei oder der Datei machine.config hinzufügen. Müssen Sie eine Konfigurationsdatei ändern d. h., Sie können nicht einfach zeigen Sie auf ein Installationspaket für die neue Version Ihrer Komponente Server-Administratoren und vorhandene Anwendungen automatisch verwendet. Umleitung über die web.config-Datei hat eine zusätzliche Schwierigkeit, erfordert der Entwickler oder Administrator wissen, welche Anwendungen Ihre Komponente verwendet werden, sodass er die Datei web.config aktualisieren können. Wie können Sie problemlos alle vorhandene Anwendungen, die die neue Version der Komponente verwenden, indem Sie die neue Version der Komponente installieren vornehmen? Wenn Ihre Antwort ist eine Assembly für Herausgeberrichtlinien verwenden, sind Sie richtig!

Was ist eine Assembly für Herausgeberrichtlinien?

Eine Assembly für Herausgeberrichtlinien ist eine Assembly, die konfiguriert die Richtlinie, wenn die .NET Runtime eine Assembly gebunden verwendet werden. Die Assembly für Herausgeberrichtlinien ist im GAC installiert und ist mit die folgende Namenskonvention benannt:
major_ver.minor_ver.assembly.dll Richtlinie.
Die major_ver und minor_ver finden Sie in der Haupt- und Nebenversionen Version der alten Version der Assembly. Wenn Sie Website.dll, Version 1.0 auf Version 2.0 aktualisieren, und alle vorhandene Anwendungen an die neue Version binden möchten, würden daher der Namen der Herausgeber Richtlinie Assembly sein:
Policy.1.0.Website.dll
Nachdem dieser Assembly für Herausgeberrichtlinien im GAC installiert ist, wird jede Anwendung, Version 1.0 von Website.dll verweist, auf Version 2.0 von Website.dll gebunden. Zu diesem Zeitpunkt können Sie Fragen werden wie die .NET Runtime weiß, dass Version 2.0 von Website.dll binden, wenn er die Herausgeberrichtlinienassembly im GAC sieht. Die Antwort liegt in der Herausgeberrichtliniendatei einer XML-Konfigurationsdatei, mit der die Assembly für Herausgeberrichtlinien erstellt.

Die Herausgeberrichtliniendatei

Die Herausgeberrichtliniendatei enthält Informationen zum Umleiten der Bindung von einer Version einer Assembly an eine neue Version erforderlich. Nachdem Sie die Herausgeberrichtliniendatei erstellt haben, verwenden Sie das Dienstprogramm .NET Assembly Linker (Al.exe), um die Herausgeberrichtlinienassembly zu erstellen.

Hier ist ein Beispiel für eine Herausgeberrichtliniendatei, die jeder Verweis auf Website.dll, Version 1.0 auf Version 2.0 umleitet. Das Token des öffentliche Schlüssels kann anhand der Eigenschaften der Assembly im GAC installierten abgerufen werden.
<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="website" publicKeyToken="18517ea673f8584b" culture="neutral" />
                    <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>
Nachdem Sie die Herausgeberrichtliniendatei erstellt haben, mit der Erweiterung Datei .config, z. B. website .config speichern. Anschließend verwenden Sie das Assembly Linker-Tool, um die Herausgeberrichtlinienassembly zu erstellen.

Der gesamte Prozess

Szenario: möchten Sie sicherstellen, dass jede ASP.NET-Anwendung derzeit verweisen auf das Serversteuerelement, Version 1.0 Version 2.0 stattdessen verwendet nach der Installation der aktualisierten Version. Sie möchten nicht jeder Konfigurationsdateien für dies ändern müssen. Sie haben mit Bedacht festgestellt, dass eine Assembly für Herausgeberrichtlinien die Möglichkeit zum wechseln. ist

Dies ist, wie Sie vorgehen sollten.
  1. Ändern Sie die Version und kompilieren Sie neu. Die erste Schritt besteht darin, die neue Version der Komponente zu erstellen. Nachdem Sie, getan haben, müssen Sie die Versionsnummer in der Datei AssemblyInfo für Ihre Komponente zu ändern.
  2. Erstellen der Herausgeber Richtlinie Datei. Erstellen Sie die Herausgeberrichtliniendatei, für die Assembly mit dem oben dargestellte Format.
  3. Verwendung Assembly Linker (Al.exe) zum Erstellen der Herausgeber Richtlinie Assembly. Assembly-Linker ist in .NET Framework SDK enthalten. Um die Herausgeberrichtlinienassembly zu erstellen, die eine Bindung von Website.dll-Version 1.0 auf Version 2.0 mithilfe einer Herausgeberrichtliniendatei namens website.config, führen Sie den folgenden Befehl leitet:
    al /link:website.config /out:policy.1.0.website.dll /keyfile:c:\keyfile.snk
    dieser Befehl erstellt eine neue Assembly policy.1.0.website.dll aufgerufen. Diese Benennungskonvention ist wichtig, wie im Abschnitt "Was ist eine Publisher Richtlinie Assembly?" angegeben.
  4. installieren die Assembly für Herausgeberrichtlinien in Global Assembly Cache. Die Assembly für Herausgeberrichtlinien ist im GAC installiert. Es wird verwendet von der .NET-Laufzeit Wenn jede Anwendung, zum Binden an die Website.dll, Version 1.0 versucht, und es erzwingt die Anwendung automatisch an die neue Version zu binden.
  5. Installieren Sie die neue Version in die Global Assembly Cache Installieren Sie die neue Version der Komponente im GAC. Nachdem die neue Version installiert wurde, kann die alte Version entfernt werden.
  6. Starten Sie Microsoft Internet-Informationsdienste (IIS) neu. Die endgültigen Schritt ist IIS neu starten. Dies ist erforderlich aufgrund der Art die .NET Runtime eine Assembly gebunden wird. Wenn die .NET Runtime bereits für eine bestimmte Assembly gebunden wurde, wird es diese Bindung wiederverwendet. Müssen Sie daher für die Bindungsumleitung auf die neue Assembly arbeiten, den Workerprozess neu starten.
Nach Abschluss dieser Schritte wird jede Anwendung, die mit einem Verweis auf Version 1.0 von Website.dll erstellt wurde automatisch Version 2.0 verwenden. Herausgeber Richtlinienassemblys bieten eine bequeme Möglichkeit sicherstellen, dass Entwickler die vollständige Kontrolle über Assemblybindung verfügen. Wie Sie eine bereits in diesem Artikel gesehen haben, wenn Ihr Ziel vorhandene Anwendungen eine neue Version der Komponente zu erzwingen, bietet eine Assembly für Herausgeberrichtlinien das vertrauen, dass Anwendungen immer die Version gewünscht verwendet ohne Konfigurationsdateien ändern oder manuelle Änderungen von einem Serveradministrator abhängig zu verwenden.

Bis nächsten,
Jim Cheshire
Support-Ingenieur
Microsoft Developer Support
Sie gerne wie immer Ideen auf Themen, die Spalten in Zukunft behandelt werden soll oder in der Knowledge Base mithilfe des Formulars Ask For It zu senden.

Eigenschaften

Artikel-ID: 891030 - Geändert am: Freitag, 18. Mai 2007 - Version: 2.3
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Keywords: 
kbmt kbhowto kbasp KB891030 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 891030
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com