Bereitstellung mit Visual Studio Installer

Die Windows Installer-Bereitstellung ermöglicht die Erstellung von Installer-Paketen, die an Benutzer verteilt werden können. Der Benutzer führt die Setup-Datei aus und wird mithilfe eines Assistenten durch den Installationsvorgang geführt. Dies wird durch das Hinzufügen eines Setup-Projekts zur Projektmappe erreicht. Bei der Erstellung wird eine Setup-Datei erzeugt, die Sie an die Benutzer verteilen können. Der Benutzer führt die Setup-Datei aus und wird mithilfe eines Assistenten durch den Installationsvorgang geführt.

Microsoft Windows Installer ist ein datengetriebener Dienst zur Installation und Konfiguration, der zum Lieferumfang des Windows-Betriebssystems gehört. Windows Installer verwaltet eine Datenbank mit Informationen zu jeder installierten Anwendung, einschließlich Dateien, Registrierungsschlüssel und Komponenten. Bei der Deinstallation einer Anwendung wird die Datenbank daraufhin überprüft, dass keine weitere Anwendung auf der Datei, dem Registrierungsschlüssel oder der Komponente beruht, die entfernt werden sollen. Dadurch wird die Beschädigung von anderen, nicht zu entfernenden Dateien verhindert.

Tipp

Die Express Editionen enthält keine Windows Installer-Technologie. Weitere Informationen zur Bereitstellungstechnologie in Express-Editionen erhalten Sie unter ClickOnce-Sicherheit und Bereitstellung.

Mit den Bereitstellungstools in Visual Studio und den Windows Installer-Funktionen können Sie Anwendungen bereitstellen und warten.

Erstellen eines Installationspakets

Anwendungen und ihre erforderliche Komponenten sollten mithilfe eines Installationspakets bereitgestellt werden. In der Regel verfügen Anwendungen über Abhängigkeiten von .NET Framework-, SQL Server Express- oder auch von benutzerdefinierten EXE- oder DLL-Dateien. Es ist jedoch unsicher, ob auf dem Endbenutzercomputer die für die Anwendung erforderliche Version von .NET Framework oder andere Abhängigkeiten installiert sind. Aus diesem Grund wird das Kopieren der Anwendung auf Endbenutzercomputer nicht empfohlen.

Installationsspeicherort

Die Endbenutzer können die Anwendung vom Internet, von CD, von der Netzwerkdateifreigabe oder von anderen Speicherorten installieren. Der Installationspfad wirkt sich auf die Projektvorlage aus, die Sie verwenden können. Wenn Endbenutzer die Anwendung vom Internet installieren sollen, können Sie die Websetupprojektvorlage verwenden. Verwenden Sie die Setupprojektvorlage, um von CD oder vom Netzwerk zu installieren. Weitere Informationen zu Projektvorlagen für die Bereitstellung finden Sie unter Setup- und Bereitstellungsprojekte.

Dateien und Ordner

Sie können den Dateisystem-Editor verwenden, um den Speicherort für die Bereitstellungsdateien und die Installationsart auszuwählen. Die Struktur des Dateisystems und die Ordnernamen können sich von Computer zu Computer unterscheiden. Der Dateisystem-Editor verwendet das Konzept abstrakter Ordner, um zu gewährleisten, dass die Dateien am gewünschten Speicherort installiert werden. Weitere Informationen finden Sie unter Verwalten der Dateiinstallation bei der Bereitstellung von Software.

Virtuelle Ordner stellen Windows-Systemordner dar. Beispiel: Der Ordner Desktop entspricht dem Systemordner Desktop. Windows ermittelt den Pfad der Systemordner. Die Dateien, die sich im Ordner Desktop befinden, werden immer im Desktop-Systemordner abgelegt, unabhängig von seinem Speicherort oder seiner Bezeichnung. Weitere Informationen finden Sie unter Besondere Ordner und benutzerdefinierte Ordner.

Sie können auch eigene Ordner erstellen und sie unter jedem beliebigen Systemordner ablegen. Sie möchten beispielsweise einen Anwendungsdatenordner unterhalb des Anwendungsordners erstellen. Die Dateien im Anwendungsdatenordner werden immer in demselben relativen Speicherort installiert, unabhängig vom Speicherort des Anwendungsordners auf dem Zielcomputer. Weitere Informationen hierzu finden Sie unter Gewusst wie: Hinzufügen und Entfernen von Ordnern im Dateisystem-Editor.

Ordner im Dateisystem-Editor können Dateien, Projektausgaben und Assemblys enthalten. Projektausgaben repräsentieren die Elemente, die in anderen Projekten innerhalb der Projektmappe enthalten sind. Sie können primär erstellte Ausgaben (z. B. eine ausführbare Datei), gefundene Ressourcen, symbolische Debuginformationen, Inhaltsdateien (z. B. HTML-Seiten) sowie die Quellcodedateien des Projekts enthalten. Jede dieser Ausgaben wird als Projektausgabegruppe bezeichnet. Eine Projektausgabegruppe enthält die primäre Ausgabe (wird auch als Schlüsselausgabe bezeichnet) sowie alle zusätzlichen Ausgaben und Abhängigkeiten. Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen und Entfernen von Projektausgaben im Dateisystem-Editor sowie unter Gewusst wie: Hinzufügen von Elementen zu einem Bereitstellungsprojekt.

Unter Verwendung der Condition-Eigenschaft können außerdem Konditionen für jede beliebige Datei oder jeden beliebigen Ordner festgelegt werden. Dadurch wird die Anpassung von Dateiinstallationen ermöglicht, die auf Konditionen des Zielcomputers während der Installation basieren. Sie können beispielsweise verschiedene Dateien installieren, die auf der Betriebssystemversion des Zielcomputers basieren. Weitere Informationen hierzu finden Sie unter Condition-Eigenschaft.

Der Dateisystem-Editor unterstützt auch die Erstellung von Verknüpfungen, ermöglicht das Ablegen von Dateien in einem Ordner und verweist darauf mit einer Verknüpfung auf dem Desktop oder in einem anderen Ordner darauf. Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen und Entfernen von Verknüpfungen im Dateisystem-Editor.

Dateizuordnungen

Bei der Bereitstellung einer Anwendung empfiehlt es sich oftmals, der Anwendung einen Dateityp zuordnen. Angenommen, die Anwendung erstellt und verwendet Dateien mit der MYFILE-Dateierweiterung. Sie können dann der Anwendung den MYFILE-Dateityp so zuordnen, dass bei einem Doppelklick auf die MYFILE-Datei die Anwendung geöffnet wird.

Zu den Tools für die Bereitstellung in Visual Studio gehört ein Dateityp-Editor, mit dem Sie Dokumenttypen festlegen und diese den Dateierweiterungen zuordnen können. Zusätzlich können Sie die Verben oder Aktionen für jeden Dokumenttyp sowie die MIME-Typen für die Dokumenttypen zur Verwendung in Browsern festlegen. Weitere Informationen finden Sie unter Verwalten von Dateitypen bei der Bereitstellung.

Während der Installation werden die im Dateityp-Editor angegebenen Einstellungen auf dem Zielcomputer aktualisiert.

Registrierung

Häufig besteht ein wesentlicher Teil der Bereitstellung einer Anwendung darin, auf die Registrierung zuzugreifen, Registrierungswerte festzulegen sowie Registrierungsschlüssel zu erstellen. Die Bereitstellungstools in Visual Studio stellen diese Funktionalität bereit.

Der Registrierungs-Editor in Visual Studio entspricht dem Windows-Registrierungseditor: Beide Tools stellen die Gliederung der Registrierung auf einem Zielcomputer hierarchisch dar. Die Standardregistrierungsstämme werden dargestellt. Sie können Werte für vorhandene Schlüssel ändern, Werte für neue Schlüssel hinzufügen und Standardschlüssel angeben. Weitere Informationen finden Sie unter Verwalten von Registrierungseinstellungen bei der Bereitstellung.

Während der Installation werden die Schlüssel und Werte, die im Registrierungs-Editor festgelegt sind, in die Registrierung des Zielcomputers eingetragen.

Mit der Condition-Eigenschaft können Konditionen für jeden beliebigen Registrierungsschlüssel oder Registrierungswert festgelegt werden. Dies ermöglicht die Anpassung der Registrierung basierend auf der Konfiguration des Zielcomputers während der Installation. Sie können beispielsweise einen anderen Registrierungswert eingeben, je nach Betriebssystemversion des Zielcomputers.

Authenticode-Signatur

Eine Anwendung oder Komponente sollte eine Signatur aufweisen, an der die Benutzer erkennen können, von wem die Anwendung oder Komponente veröffentlicht wurde und ob es sich dabei um ein sicheres Produkt handelt. Es empfiehlt sich, CAB-Dateien und Installationsprogramme zu signieren, die mit einem Webbrowser heruntergeladen werden.

Mit den Bereitstellungstools von Visual Studio können Sie Installationsprogramme, Mergemodule oder CAB-Dateien mithilfe der Microsoft Authenticode-Technologie signieren. Sie müssen zunächst ein digitales Zertifikat abrufen, um die Anwendung oder die Komponenten zu signieren.

Um Authenticode-Signaturen zu verwenden, müssen Sie signierte ClickOnce-Manifeste im Bereitstellungsprojekt aktivieren. Weitere Informationen finden Sie unter Seite "Signierung", Projekt-Designer.

Globaler Assemblycache

Der globale Assemblycache ist ein von .NET Framework bereitgestellter Codecache, der zur Speicherung von Assemblys verwendet wird, die von mehreren Anwendungen freigegeben werden müssen. Damit sie im globalen Assemblycache installiert werden kann, muss der Assembly ein starker Name zugewiesen werden. Hierdurch erhält die Anwendung oder Komponente eine eindeutige Identität, mit der andere Software die Anwendung identifizieren und explizit darauf verweisen kann. Weitere Informationen finden Sie unter Gewusst wie: Signieren von Assemblys (Visual Studio).

Um eine Assembly im globalen Assemblycache zu installieren, fügen Sie die Assembly oder die Projektausgabegruppe für die Assembly im Dateisystem-Editor dem Ordner Globaler Assemblycache hinzu. Zeigen Sie im Menü Ansicht auf Editor, und klicken Sie auf Dateisystem-Editor, um den Editor zu öffnen.

Der Ordner für den globalen Assemblycache unterscheidet sich von den anderen Ordnern im Dateisystem-Editor. Er verfügt über keine festlegbaren Eigenschaften, und Sie können keine Verknüpfungen mit dem Ordner oder mit Assemblys im Ordner erstellen.

Auswählen von erforderlichen Komponenten

Zur erfolgreichen Bereitstellung einer Anwendung müssen Sie auch alle Komponenten bereitstellen, auf die von der Anwendung verwiesen wird. Zum Beispiel haben die meisten mit Visual Studio erstellten Anwendungen eine Abhängigkeit von der .NET Framework-Komponente. Bevor die Anwendung installiert wird, muss auf dem Zielcomputer eine erforderliche Version der Common Language Runtime vorhanden sein. Mit den in Visual Studio vorhandenen Bereitstellungstools können Sie im Rahmen der Installation .NET Framework und andere Komponenten installieren. Das Installieren erforderlicher Komponenten wird auch als Bootstrapping bezeichnet.

Weitere Informationen finden Sie unter Gewusst wie: Installieren von erforderlichen Komponenten für die Windows Installer-Bereitstellung

Installieren mit Administratorrechten

Bei der administrativen Installation handelt es sich um ein Feature von Microsoft Windows Installer, mit dem Sie ein Quellbild einer Anwendung in einer Netzwerkfreigabe installieren können. Benutzer in einer Arbeitsgruppe mit Zugriff auf die Netzwerkfreigabe können die Anwendung dann aus dem Quellbild installieren.

Mit dem Benutzeroberflächen-Editor können Sie eine andere Gruppe von Installationsdialogfeldern angeben. Diese werden angezeigt, wenn die Anwendung von einem Administrator über die Befehlszeile mithilfe der /aBefehlszeilenoption (msiexec /aInstallerName) in einer Netzwerkfreigabe installiert wird. Weitere Informationen finden Sie unter Verwalten der Benutzeroberfläche bei der Bereitstellung.

Tipp

Bei der administrativen Installation einer Anwendung werden auch dann keine Bootstrapper-Anwendungsdateien (die Dateien, die bei Bedarf Windows Installer installieren) auf den Server kopiert, wenn die Bootstrapper-Eigenschaft auf Windows Installer Bootstrapper festgelegt ist. Wenn die Bootstrapper-Anwendungsdateien für die Installation erforderlich sind, müssen Sie die Dateien "Instmsia.msi", "Instmsiw.msi", "Setup.exe" und "Setup.ini" manuell auf den Server kopieren. Diese Dateien befinden sich in demselben Verzeichnis wie die MSI-Datei für die Anwendung.

Weitere Informationen finden Sie in der Windows Installer SDK-Dokumentation unter Administrative Installation (Windows Installer).

Windows und Erweiterung

Windows Installer-Technologie unterstützt die Softwareinstallation unter Windows Vista und Windows 7. Dem Endbenutzer, der Anwendungen installiert, sollte bei jeder Komponenteninstallation, für die erhöhte Rechte erforderlich sind, eine Aufforderung angezeigt werden, auch wenn auf dem Computer die Benutzerkontensteuerung (UAC) aktiviert ist.

Erhöhte Rechte für Anwendungen

In der Regel wird Setup.exe (auch als Bootstrapper bezeichnet) nicht mit erhöhten Rechten, sondern auf der Berechtigungsebene des aktuellen Benutzers ausgeführt. Deshalb wird bei der Installation der endgültigen Anwendung keine Aufforderung zum Ausführen mit erhöhten Rechten angezeigt. Beachten Sie jedoch, dass dem Benutzer bei Verwendung einer MSI-Datei in der Regel eine Aufforderung angezeigt wird, bei Verwendung von Setup.exe hingegen nicht.

In dem eingebetteten UAC-Manifest des Bootstrappers gibt der requestedExecutionLevel-Knoten an, dass die Installation unter dem aktuellen Benutzerkonto (asInvoker) ausgeführt wird:

<requestedExecutionLevel level="asInvoker" />

Falls erforderlich, können Sie die Rechte der Anwendungsinstallation jedoch erhöhen. Zum Ändern von IIS-Einstellungen (Internet Information Services, Internetinformationsdienste) in einem Websetup-Projekt oder zum Installieren von Assemblys im globalen Assemblycache (GAC) sind beispielsweise Administratorrechte erforderlich. Die Eingabeaufforderung für erhöhte Rechte wird nach der Installation der erforderlichen Komponenten, jedoch vor der Installation der Anwendung angezeigt.

Zum Erhöhen der Berechtigungen für eine Installation öffnen Sie die Projektdatei (VDPROJ-Datei). Legen Sie im Abschnitt MsiBootstrapper der Projektdatei für die RequiresElevation-Eigenschaft den Wert True fest. Diese Eigenschaft ist in der integrierten Entwicklungsumgebung von Visual Studio (IDE) nicht verfügbar. Sie müssen daher die Projektdatei verwenden. Weitere Informationen finden Sie unter RequiresElevation-Eigenschaft.

Erhöhen von Rechten unter Einbeziehung des Administrators

Unter Windows Vista und Windows 7 wird das Erhöhen von Rechten unter Einbeziehung des Administrators von Windows Installer unterstützt. In diesem Szenario wird der Benutzer zur Eingabe von Administrator-Anmeldeinformationen aufgefordert, und der Administrator gibt das Kennwort für den Benutzer ein. Zur Unterstützung dieses Szenarios legt der Bootstrapper für die AdminUser-Eigenschaft den Wert True fest, wenn Windows Vista oder eine höhere Version von Windows auf dem Computer ausgeführt wird.

Tipp

Wenn Windows Vista auf einem Computer ohne aktivierte Benutzerkontensteuerung ausgeführt wird, und Sie nicht Administrator sind, wird AdminUser dennoch auf True festgelegt. Deshalb sollten EXE-Installationsprogramme (z. B. SQLExpress32.exe) geschrieben werden, um entsprechende Berechtigungen zu ermitteln und im Fall nicht ausreichender Berechtigungen einen speziellen Exitcode zu generieren. Setup.exe sollte so geschrieben werden, dass dieser Exitcode abgefangen und die Meldung anzeigt wird, dass ein Administrator erforderlich ist.

Erhöhte Rechte für erforderliche Komponenten

Wenn erforderlich, erhöhen Windows Vista und Windows 7 die Rechte zur Installation erforderlicher Komponenten. Der Bootstrapper selbst führt keine Rechteerhöhung aus. Wenn Windows Vista oder Windows 7 mit aktivierter Benutzerkontensteuerung ausgeführt wird, wird bei jeder erforderlichen Komponente, die noch nicht installiert ist und erhöhte Rechte erfordert, eine entsprechende Aufforderung angezeigt. Wenn die Erhöhung von Rechten für ein Paket fehlschlägt, wird der Bootstrapper mit einer entsprechenden Fehlermeldung beendet.

Erhöhte Rechte für eine benutzerdefinierte Aktion

Benutzerdefinierte Aktionen, die Sie im Editor für benutzerdefinierte Aktionen erstellen, werden mit erhöhten Rechten ausgeführt. Benutzerdefinierte Aktionen sollten nicht auf benutzerspezifische Daten zugreifen (z. B. die Registrierung oder das Dateisystem), da die benutzerdefinierte Aktion nicht unter dem Konto des aufrufenden Benutzers ausgeführt wird.

In der Standardeinstellung werden benutzerdefinierte Aktionen mit erhöhten Rechten ausgeführt, da für die NoImpersonate-Eigenschaft im Editor für benutzerdefinierte Aktionen standardmäßig True festgelegt ist. Wenn NoImpersonate auf False geändert wird, muss die benutzerdefinierte Aktion unter der Identität des aufrufenden Benutzers ausgeführt werden, der möglicherweise über niedrigere Berechtigungen verfügt.

Unterschiede zwischen einzelnen Versionen von Visual Studio

Beachten Sie auch, dass es beim Ausführen von Visual Studio 2005- und Visual Studio 2008-Setupprojekten mit aktivierter Benutzerkontensteuerung Unterschiede gibt.

Die in Windows Vista bzw. Windows 7 integrierte Installationsprogrammerkennung fordert den Benutzer bei aktivierter Benutzerkontensteuerung zur Bestätigung auf. Ein mit Visual Studio 2005 erstellter Bootstrapper (Setup.exe) fordert den Benutzer stets zur Bestätigung auf, unabhängig von den zu installierenden Komponenten. Da unter Windows Vista und Windows 7 "Setup.exe" und alle zugehörigen Prozesse mit einem Administratortoken ausgeführt werden, wird die Installation der endgültigen Anwendung mit erhöhten Rechten ausgeführt. Wenn ein Benutzer Setup.exe mit erhöhten Rechten unter Einbeziehung des Administrators ausführt, wird die Anwendung unter dem Profil des Benutzers mit erhöhten Rechten (nicht unter dem Profil des Administrators) installiert.

In Visual Studio 2008 und Visual Studio 2010 verhält sich "Setup.exe" anders. Beim Start wird der Benutzer nicht zur Bestätigung einer Rechteerhöhung aufgefordert. Zum Unterbinden der Aufforderung zur Bestätigung der Rechteerhöhung wird im eingebetteten Manifest des Bootstrappers angegeben, dass Setup.exe auf der angeforderten Ausführungsebene asInvoker ausgeführt wird. Dies bietet den Vorteil, dass die Installation der endgültigen Anwendung nicht mit erhöhten Rechten ausgeführt wird, erforderliche Komponenten bei Bedarf jedoch weiterhin mit erhöhten Rechten installiert werden können. Der Bootstrapper ruft ShellExecute auf, um erforderliche Komponenten zu starten. Windows Vista bzw. Windows 7 empfängt diesen Aufruf, führt die Installationserkennung aus, und zeigt vor der Installation eine Benutzereingabeaufforderung an.

Der Nachteil dieser Änderung besteht darin, dass außer für die Anwendung selbst auch für jede zu installierende erforderliche Komponente eine Aufforderung angezeigt wird. Wenn jedoch alle erforderlichen Komponenten bereits auf dem Computer vorhanden sind, sollten bei Installation keine Eingabeaufforderungen angezeigt werden. Weiterhin sollten keine externen Überprüfungen ausgeführt werden, die eine Erhöhung von Rechten erfordern. Externe Überprüfungen können zwar ausgeführt werden, dem Benutzer werden jedoch neben den Eingabeaufforderungen des Installationsprogramms mehrere Aufforderungen zur Bestätigung der erhöhten Rechte für jede der externen Überprüfungen angezeigt.

Siehe auch

Aufgaben

Problembehandlung bei Setup- und Bereitstellungsprojekten

Referenz

Bereitstellungsfehler und Support

Konzepte

Setup- und Bereitstellungsprojekte

Weitere Ressourcen

Bereitstellen von Anwendungen und Komponenten

Bereitstellungs-Editoren

Aufgaben und exemplarische Vorgehensweisen für die Bereitstellung

Dialogfelder für die Bereitstellung

Beispiele und exemplarische Vorgehensweisen für die Bereitstellung