Handbuch für ISVs zur Verteilung von Laufzeitkomponenten

Veröffentlicht: 12. Jan 2006
Von Barak Cohen

Zur Ausführung von verwalteten Anwendungen und Steuerelementen, die mit Visual Studio .NET geschrieben wurden, ist das .NET Framework (und manchmal auch andere Laufzeitkomponenten) erforderlich. Dieser Artikel beschreibt, wie ISVs (Independent Software Vendors) die erforderlichen Laufzeitkomponenten mit ihren Anwendungen bereitstellen können. Dieser Artikel enthält auch Links zu englischsprachigen Seiten. (11 gedruckte Seiten)

Auf dieser Seite

Einführung Einführung
Laufzeitkomponenten Laufzeitkomponenten
Verteilungsrichtlinien Verteilungsrichtlinien
Verteilungsmechanismen Verteilungsmechanismen
Übermittlungskanäle Übermittlungskanäle
Verteilen über das Internet Verteilen über das Internet
Verteilen über optische Speichermedien Verteilen über optische Speichermedien
Verteilen über Flash-Medien Verteilen über Flash-Medien
Lösungen von Microsoft zum Erstellen von Installationspaketen zum Verteilen von Laufzeitkomponenten Lösungen von Microsoft zum Erstellen von Installationspaketen zum Verteilen von Laufzeitkomponenten

Einführung

Das Microsoft .NET Framework und weitere Laufzeitkomponenten wie Visual J#-Laufzeit oder Microsoft .NET Framework-Sprachpakete stehen im Microsoft Download Center (in englischer Sprache) zur Verfügung. Die Laufzeitkomponenten finden Sie auf der .NET Framework-Seite SDKs, Redistributables & Service Packs Downloads (in englischer Sprache). Lizenzierte Windows-Benutzer mit einem kompatiblen Windows-Betriebssystem können sämtliche Laufzeitkomponenten aus dem Internet herunterladen und auf ihrem Computer installieren. Sie müssen hierzu nur die entsprechenden Bestimmungen des EULA (Endbenutzer-Lizenzvertrag) akzeptieren. Windows-Laufzeitkomponenten stehen auf der Webseite Windows Update (in englischer Sprache) zur Verfügung. Benutzer, die die Bestimmungen des Windows Update-Lizenzvertrages akzeptieren, bekommen diese Updates als Teil des Windows Update Service, entweder als optionale oder wichtige Updates. ISVs können auf verschiedene Weise sicherstellen, dass die passenden Laufzeitkomponenten zur Verfügung stehen und ihre Anwendungen ordnungsgemäß ausgeführt werden. In diesem Artikel wird beschrieben, wie ISVs in den einzelnen Übermittlungsmechanismen das Verteilen der Laufzeitkomponenten vereinfachen.

Laufzeitkomponenten

Es gibt zwei Arten von Laufzeitkomponenten: Windows-Laufzeitkomponenten, die unter einer Windows-Zusatzlizenz bereitgestellt werden und als Teil von Windows gelten, und Microsoft-Laufzeitkomponenten mit eigener Lizenz.

Für jede Generation von Visual Studio, Microsoft .NET Framework-SDKs und anderen Microsoft-SDKs gibt es die passenden Laufzeitkomponenten. Die SDK-Lizenz beinhaltet normalerweise rechtliche Richtlinien zur Verteilung dieser Komponenten.

Verteilungsrichtlinien

Sie benötigen keine besondere Verteilungslizenz, wenn Sie Ihre Kunden lediglich an Microsoft weiterleiten, um die Laufzeitkomponenten von Microsoft zu beziehen, und wenn Sie die Laufzeitpakete und deren Installation nicht ändern (Sie können z. B. keine automatische Installation verwenden). Vor Installation der Komponenten müssen Ihre Kunden das Installationsprogramm ausführen und die EULA-Bestimmungen akzeptieren.

Sie benötigen eine Verteilungslizenz, wenn Sie die Komponenten auf Ihrer Website verwalten oder sie auf magnetischen oder optischen Speichermedien zur Verfügung stellen möchten (z. B. für Kunden, die die Komponenten sonst nicht beziehen können). Vergleichen Sie hierzu die folgenden Tabellen 1, 2 und 3. In den meisten Fällen ist diese Lizenz in der Lizenz des Entwicklungstools enthalten (entweder Visual Studio oder .NET Framework SDK). Die Verteilungslizenz berechtigt nicht zu Änderungen am Installationsprozess und zum Außerkraftsetzen des Endbenutzer-Lizenzvertrags (Aktivieren der automatischen Installation).

Nach der Installation von Windows-Laufzeitkomponenten auf einem Kundencomputer wartet Microsoft diese Komponenten als Teil von Windows. Sollte der Fall auftreten, dass Microsoft die Wartung bei einem Kunden nicht ausführen kann, stellt Microsoft über Microsoft Product Support Services eine Wartungslizenz zur Verfügung.

Die folgenden Tabellen enthalten Auszüge aus einer Liste der verteilbaren Komponenten mit den entsprechenden Lizenzen für die Verteilung.

Tabelle 1: Verteilbare Komponenten (Visual Studio 2003)-Auszug

Verteilbare Komponente

Vom ISV zu akzeptierende Lizenz zur Verteilung

.NET Framework 1.1

.NET Framework 1.1 SDK-EULA oder Visual Studio .NET 2003 EULA (in englischer Sprache)

Sprachpakete für .NET Framework 1.1

.NET Framework 1.1 SDK-EULA

Microsoft Visual J# 1.1

.NET Framework 1.1 SDK-EULA oder Visual Studio .NET 2003 EULA (in englischer Sprache)

Sprachpaket für Microsoft Visual J# .NET 1.1

.NET Framework 1.1 SDK-EULA

MDAC 2.8

Visual Studio .NET 2003-EULA

Tabelle 2: Verteilbare Komponenten (Visual Studio 2005)-Auszug

Verteilbare Komponente

Vom ISV zu akzeptierende Lizenz zur Verteilung

.NET Framework 2.0
.NET Framework 2.0 für x64
.NET Framework 2.0 für IAx64

.NET Framework 2.0 SDK-EULA oder Visual Studio .NET 2005-EULA

Sprachpakete für .NET Framework 2.0

.NET Framework 2.0 SDK-EULA oder Visual Studio .NET 2005-EULA

Microsoft Visual J# 2.0

.NET Framework 2.0 SDK-EULA oder Visual Studio .NET 2005-EULA

Sprachpakete für Microsoft J# 2.0

.NET Framework 2.0 SDK-EULA oder Visual Studio .NET 2005-EULA

Tabelle 3: Verteilbare Komponenten (Windows)-Auszug

Verteilbare Komponente

Vom ISV zu akzeptierende Lizenz zur Verteilung

DirectX 9.0c

DirectX 9 SDK-EULA

DirectX 9.0c für Softwareentwickler - Multilingual

DirectX 9 SDK-EULA

MSI 3.1 und MSI 2.0

.NET Framework 2.0 SDK-EULA oder Visual Studio .NET 2005-EULA

Den Endbenutzer-Lizenzvertrag für das jeweilige Produkt finden Sie auf der Produktverpackung oder auf der Microsoft-Website unter Find Retail Software License Terms page (in englischer Sprache).

Verteilungsmechanismen

Zwei verschiedene Verteilungsmechanismen stehen zur Verfügung: "Integrierte" Verteilung, bei der in einer einzelnen Installation die nötigen Laufzeitkomponenten zusammen mit der Anwendung installiert werden, und die "gestaffelte" Verteilung, in der der Installationsprozess in zwei Schritte aufgeteilt wird: zunächst werden die erforderlichen Laufzeitkomponenten installiert und anschließend die Anwendung. Die folgende Tabelle vergleicht diese beiden Möglichkeiten.

Tabelle 4: Vergleich der beiden Verteilungsmechanismen

Art der Installation

Integriert

Gestaffelt

Kategorie



Anzahl der auszuführenden Mausklicks

Mindestens einer

Mindestens zwei

Markentrennung

Die Microsoft-Laufzeitkomponenten werden von einem ISV-Modul installiert

Die Microsoft-Laufzeitkomponenten werden von einem Microsoft-Modul installiert, unabhängig vom Installationsprogramm des Produkts.

Schwierigkeitsgrad

Kompliziert

Einfach. Vorkompilierte Installationskomponenten können verwendet werden.

Ermitteln des Installationsstatus einer Webseite

Erfordert benutzerdefinierte Lösung

Für bestimmte Laufzeitkomponenten, wie .NET Framework, können Standardmechanismen verwendet werden.

Übermittlungskanäle

Herkömmliche Übermittlungskanäle sind etwa Verteilung über das Internet oder Speichermedien. In der folgenden Tabelle werden die Kanäle und ihre jeweiligen Eigenschaften verglichen:

Tabelle 5: Vergleich der Übermittlungskanäle

Kanal

Verteilung über das Internet

Peer-to-Peer-Netz - Kunde erhält die Anwendung

Optische Speichermedien

Flash-Medien

Eigenschaften





Mechanismen

Der Kunde erhält die Anwendung vom ISV über das Internet. Die Laufzeitbestand-teile werden vom ISV oder von Microsoft zur Verfügung gestellt.

Der Kunde erhält die Anwendung über das Internet von einem anderen Peer. Die Laufzeitbestandteile sollten von Microsoft bezogen werden.

Der Kunde erhält die Anwendung auf CD/DVD. Diese können die Laufzeitbestandteile enthalten.

Der Kunde erhält die Anwendung auf einem Flash-Laufwerk. Darauf können die Laufzeitbestandteile enthalten sein (der Laufwerkshersteller muss hierzu die Verteilungslizenz akzeptieren).

Größe

Die Verteilung über das Internet eignet sich gut für kleine und mittlere Pakete, sie ist ideal für Benutzer mit Breitbandanbindung.

Über DFÜ-Verbindungen (und breitbandige mobile Verbindungen) können nur kleine Pakete (bis zu 5 MB) heruntergeladen werden.

Die Peer-to-Peer-Verteilung über das Internet eignet sich gut für kleine und mittlere Pakete, sie ist ideal für Benutzer mit Breitbandanbindung.

Über DFÜ-Verbindungen (und breitbandige mobile Verbindungen) können nur kleine Pakete (bis zu 5 MB) heruntergeladen werden.

Auf Grund von Lizenzbestimmungen sollten die Microsoft-Laufzeitkomponenten immer von Microsoft oder einem Drittanbieter, der über eine Verteilungslizenz verfügt, bezogen werden. Peers sind keine Verteilungslizenzinhaber.

Sie benötigen 700 MB für CD und 4,7 GB für DVD.

Sie benötigen die Flash-Laufwerksgröße (verdoppelt sich jedes Jahr). 2005 betrug die Durchschnittsgröße 256 MB. 2006 wird sie bei 512 MB liegen.

Kosten für den Verteiler

Bandbreite

Basisbandbreite (um die Verteilung zu starten und um Laufzeitkomponenten bei Bedarf zu verwalten)

Optische Speichermedien verursachen geringe Kosten. ISV muss sich an Hersteller und Lieferanten wenden.

Flash-Laufwerke verursachen hohe Kosten. ISV muss sich an Hersteller und Lieferanten wenden (die meisten ISVs streben eine Zusammenarbeit mit Flash-Laufwerksherstellern an).

Kosten für den Kunden

Verbindungskosten

Verbindungskosten

Lieferkosten

Lieferkosten

Aktualisierbarkeit

Einfach

Problematisch, wenn alte Kopien beim Kunden vorliegen.

Problematisch wegen Bestandsaspekten

Problematisch wegen Bestandsaspekten

Medienfunktionalität nach der Installation

Nicht anwendbar

Nicht anwendbar

Nur als Sicherung zur Neuinstallation

Als Speicher- und Sicherungsmedium

In den folgenden Abschnitten werden die Verteilungsmechanismen beschrieben, die ISVs in den unterschiedlichen Kanälen einsetzen können.

Verteilen über das Internet

Die Verteilung über das Internet ist die kostengünstigste Art, Software zu verteilen. Mit mehr oder weniger großem Aufwand ermöglichen Sie Ihren Kunden eine einfache Installation.

Gestaffelte Bereitstellung über das Internet

Im einfachsten Verfahren zur Bereitstellung über das Internet werden die Verknüpfungen zu den jeweiligen Laufzeitkomponenten und der Anwendung auf dieselbe Seite gesetzt:

Abbildung 1: Die einfache Installationsseite

Herunterladen von Foo

Sie benötigen die folgenden Laufzeitkomponenten, um die Foo-Anwendung auf Ihrem Computer installieren zu können.

Installieren Sie zunächst die folgenden Komponenten von Microsoft, bevor Sie Foo installieren (Sie benötigen Administratoren-Rechte auf Ihrem Computer, um die Komponenten zu installieren):

Microsoft Data Access Components Version 2.8 (Sie müssen mit Administrator-Rechten angemeldet sein, wenn Sie diese Komponente unter Windows 2000 installieren möchten. Unter Windows XP ist diese Komponente nicht erforderlich.)

Microsoft .NET Framework 1.1 (Sie müssen mit Administrator-Rechten angemeldet sein, wenn Sie diese Komponente unter Windows 2000 oder Windows XP installieren möchten.)

Nachdem Sie die Komponenten installiert haben, können Sie Foo installieren (hierfür benötigen Sie keine Administratoren-Rechte):

Klicken Sie hier, um Foo zu installieren.

Verbessern Sie den Vorgang, indem Sie die Funktionen des Webservers oder eines Skripts auf der Seite integrieren, um die Header-Informationen (Benutzeragent-Daten) des Kunden-Browsers zu analysieren und Daten über das Betriebssystem zu extrahieren, wie z. B. Browsersprache, -version oder .NET Framework-Version. Mit Hilfe dieser Technologie kann die Seite auf den Computern, auf denen die erforderlichen Komponenten bereits installiert sind, unterschiedlich dargestellt werden. Da auf vielen neuen Computern bereits die meisten Komponenten installiert sind, kann der ISV die Downloadseite auch übersichtlicher und benutzerfreundlicher gestalten. Die Seite wird auf Computern mit installierten Komponenten abweichend angezeigt. Lesen Sie hierzu den Artikel Creating an Installation Page That Automatically Detects the .NET Framework Version (in englischer Sprache), er enthält ein Beispiel zum Erstellen von Seiten, die Laufzeitkomponenten automatisch erkennen.

Abbildung 2: Die Seite auf einem Windows XP-Computer, auf dem .NET Framework installiert ist.

Herunterladen von Foo unter Windows XP

Sie haben .NET Framework bereits installiert.

Klicken Sie hier, um Foo zu installieren.

Abbildung 3: Die Seite auf einem Windows 2000-Computer, auf dem .NET Framework nicht installiert ist.

Herunterladen von Foo unter Windows 2000

Sie benötigen die folgenden Laufzeitkomponenten, um die Anwendung Foo auf Ihrem zu Computer installieren.

Installieren Sie zunächst folgende Microsoft-Komponenten, bevor Sie Foo installieren (Sie benötigen Administratoren-Rechte auf Ihrem Computer, um die Komponenten zu installieren):

Microsoft Data Access Components Version 2.8 (Sie benötigen Administrator-Rechte)

Microsoft .NET Framework 1.1 (Sie benötigen Administrator-Rechte)

Nachdem Sie die Komponenten installiert haben, können Sie Foo installieren (hierfür benötigen Sie keine Administrator-Rechte):

Klicken Sie hier, um Foo zu installieren.

Verwenden Sie ein Installationsprogramm (z. B. Microsoft Component Installer SDK), um den Installationsvorgang zu optimieren. Das Programm lädt die Komponenten herunter und installiert sie. Während des gesamten Prozesses wird anstelle eines einfachen Dialogfelds eine umfangreiche Benutzeroberfläche angezeigt.

Abbildung 4: Aufrufen des Microsoft Component Installer für Windows

Herunterladen von Foo unter Windows 2000

Sie benötigen die Laufzeitkomponenten von Microsoft, um die Anwendung Foo auf Ihrem Computer zu installieren. Klicken Sie auf den Link Microsoft Component Installer für Windows, um die erforderlichen Komponenten herunterzuladen und zu installieren.

Komponenten jetzt installieren.

Nachdem Sie die Komponenten installiert haben, können Sie Foo installieren (hierfür benötigen Sie keine Administrator-Rechte):

Klicken Sie hier, um Foo zu installieren.

Integrierte Bereitstellung über das Internet

Um die integrierte Bereitstellung über das Internet zu ermöglichen, müssen Sie die Logik zum Identifizieren, Herunterladen und Installieren von Komponenten im Anwendungs-Installationsprogramm integrieren. Die oben genannte Verwendung der Browser-Benutzeragentdaten ist nur eingeschränkt möglich. Daher benötigen ISVs Code, der das Vorhandensein von Laufzeitkomponenten überprüft.

Dazu können verschieden Technologien verwendet werden (vom Einbinden des Win32-Codes in das Installationsprogramm, über den Bootstrapper bis zu Tools von Drittanbietern).

Abbildung 5: Integrierte Web-Installation

Herunterladen von Foo unter Windows XP

Sie benötigen die Laufzeitkomponenten von Microsoft, um die Anwendung Foo auf Ihrem zu Computer installieren. Die Foo-Installationsdatei verfügt über eine Technologie, welche die Fähigkeiten Ihres Betriebssystems überprüft und die erforderlichen Komponenten installiert. Achten Sie auf das Akzeptieren des Lizenzvertrags jeder Komponente.

Klicken Sie hier, um Foo zu installieren.

In .NET Framework 2.0 ist außerdem die Technologie ClickOnce enthalten. Diese ermöglicht die automatische Ausführung und Aktualisierung von Anwendungen von einer URL. ClickOnce verbindet somit die Vorteile der Wartung von Web-Anwendungen und die Fülle von Smart Client-Anwendungen.

Um den Bootstrapper zu verwenden, benötigen Sie Laufzeitpaket-Definitionen, die das Tool unterstützen, die relevanten Laufzeitkomponenten bei Bedarf zu identifizieren. Außerdem helfen sie bei der Suche und der Installation der Komponenten. Weitere Informationen finden Sie in diesem Artikel des MSDN Magazine Bootstrapper: Use the Visual Studio 2005 Bootstrapper to Kick-Start Your Installation (in englischer Sprache).

Außerdem sollten Sie sicherstellen, dass der Benutzer, der die Software installiert, über Administrator-Rechte verfügt. Im Knowledge Base-Artikel How To Determine Whether a Thread Is Running in User Context of Local Administrator Account (in englischer Sprache) ist C-Beispielcode enthalten, der dies ermöglicht.

Besondere Verteilung über das Internet (Peer-to-Peer)

In einem Peer-to-Peer-Szenario gibt ein Benutzer die Anwendung an einen anderen Benutzer weiter, indem er den neuen Benutzer einfach zu der Webseite weiterleitet, auf der die Anwendung zur Verfügung steht. Die Installationsbestandteile können jedoch auch direkt oder über ein Peer-to-Peer-Netzwerk weitergegeben werden.

Das aktuelle Lizenzmodell für Microsoft-Komponenten gewährt dem Endbenutzer keine Verteilungsrechte. Daher müssen die Laufzeitkomponenten auch im Falle einer Peer-to-Peer-Verteilung immer von jemandem bezogen werden, der über eine Verteilungslizenz verfügt. Am besten werden sie direkt von Microsoft bezogen.

Verteilen über optische Speichermedien

Beim Verteilen über das Internet gibt es bestimmte Einschränkungen. Vor allem müssen die Kunden über ausreichende Bandbreite verfügen, um die Anwendung herunterladen zu können (oder viel Geduld bei großen Nutzlasten). 2004 hatte ein großer Teil der Internetbenutzer noch langsame DFÜ-Verbindungen, allerdings verändert sich dies rasch. Außerdem gibt es ein Marktsegment ohne verfügbare externe Internetverbindung. Für dieses Marktsegment bieten ISVs die Möglichkeit, Anwendungen auf optischen Speichermedien zu beziehen. Bei physischen Speichermedien müssen die erforderlichen Laufzeitkomponenten auf den optischen Speichermedien zur Verfügung stehen. Für diesen Zweck muss der ISV den Verteilungslizenzvertrag wie oben beschrieben abrufen und akzeptieren.

Die Implementierung auf physischen Speichermedien kann als gestaffelte oder als integrierte Bereitstellung erfolgen. In beiden Fällen wird während der Installation eine Verknüpfung zu den Laufzeitkomponenten hergestellt, die sich auf den optischen Speichermedien befinden (und für die der ISV über die Rechte zur Verteilung verfügt). Beachten Sie, dass die Verteilungslizenz dem ISV nicht das Recht einräumt, den Installationsprozess der Laufzeitkomponenten zu ändern. Die Installation der Laufzeitkomponenten darf beispielsweise nicht mit aktivierter Option "Automatische Installation" durchgeführt werden.

Verteilen über Flash-Medien

Technisch betrachtet ist ein Verteilen über Flash-Speichermedien dem Verteilen über optische Speichermedien sehr ähnlich. Ein Nachteil liegt jedoch in der für die Installation verfügbaren Größe des Speichermediums. Da viele Computer schon über die Laufzeitkomponenten verfügen und diese Komponenten möglicherweise die Speicherkapazität überschreiten, wird der Endbenutzer beim Installationsprozess von Flash-Speichermedien meist zu microsoft.com weitergeleitet. Hier erhält er dann, wie bei der Bereitstellung über das Internet, die erforderlichen Komponenten.

Lösungen von Microsoft zum Erstellen von Installationspaketen zum Verteilen von Laufzeitkomponenten

Dieser Abschnitt enthält eine kurze Übersicht über Lösungen von Microsoft und Drittanbietern zum Erstellen von Installationspaketen, die bei Bedarf auch Laufzeitkomponenten bereitstellen.

Microsoft-Lösungen

  • Das Visual Studio Setup-Projekt und der Bootstrapper: Viele Entwickler verwenden das Visual Studio Setup-Projekt (VSI), um Installationspakete zu erstellen. Das Setupprojekt ist leicht zu bedienen. Es erstellt MSI-Pakete, die sowohl zum Verteilen über das Internet als auch über CDs verwendet werden können. Eine weitere Anpassung der fertigen MSI-Pakete ist jedoch nur eingeschränkt möglich. Entwickler müssen daher oft auf Tools von Drittanbietern zurückgreifen, um die gewünschte Flexibilität zu erlangen. (Microsoft stellt das Tool ORCA zum Bearbeiten von MSI-Paketen bereit.) Das VSI-Projekt kann Laufzeitkomponenten kapseln, die als Bootstrapper-Pakete definiert sind. Visual Studio enthält ein Bootstrapper-Manifest für das .NET Framework. Wenn Sie andere Laufzeitkomponenten verwenden möchten, müssen Sie ein eigenes Manifest schreiben. Weitere Informationen finden Sie unter Bootstrapper: Use the Visual Studio 2005 Bootstrapper to Kick-Start Your Installation (in englischer Sprache).

  • ClickOnce: ClickOnce ist eine besondere Bereitstellungstechnologie. Sie ermöglicht die Aktivierung einer Smart Client-Anwendung über eine URL. ClickOnce unterstützt das Erstellen von Menüsymbolen im Start-Menü und in Software für die Anwendungen, die sie bereitstellt. ClickOnce eignet sich am besten für Anwendungen, die keinerlei Auswirkungen auf den Computer haben, auf dem sie ausgeführt werden, d. h. sie registrieren keine Komponenten und ändern nicht den Computerstatus. Für ClickOnce muss das .NET Framework auf dem Client-Computer installiert sein, es verwendet dieselbe Bootstrapper-Infrastruktur.

  • Microsoft Component Installer SDK: Dieses SDK (in englischer Sprache) bietet eine schnelle und einfache Möglichkeit, eine Anwendung bereitzustellen, die auf Laufzeitkomponenten beruht. Es passt sich automatisch dem jeweiligen Bereitstellungsmedium an (Internet oder physisches Speichermedium), wird automatisch lokalisiert und so dem zugrunde liegenden Betriebssystem des Microsoft Component Installer SDK angepasst. Das SDK ist jedoch in Bezug auf die von ihm unterstützten Laufzeitkomponenten nicht erweiterbar. Entwickler müssen aus einer festgelegten Liste auswählen, die sie nicht erweitern können. Dieses SDK nimmt die Installation der Anwendung, die nach Abschluss der Installation der Laufzeitkomponenten über eine Installationsdatei ausgeführt werden muss, nicht selbst vor (dazu kann VSI verwendet werden).

  • WIX: Außerdem gibt es ein von Microsoft initiertes Gemeinschaftsprojekt zum Erstellen von Installationen mit dem Namen Windows Installer XML (in englischer Sprache). WIX ist ein Tool, das ein XML-Manifest verwendet, um MSI-Installationen zu erstellen. WIX ermöglicht das Erstellen flexibler Installationen, die eine Installation von Laufzeitkomponenten einschließen.


Anzeigen: