Exemplarische Vorgehensweise: Manuelles Bereitstellen einer ClickOnce-Anwendung
Wenn Sie Visual Studio nicht verwenden können, um Ihre ClickOnce-Anwendung bereitzustellen, oder wenn Sie erweiterte Bereitstellungsfeatures wie die Bereitstellung vertrauenswürdiger Anwendungen verwenden müssen, sollten Sie das Befehlszeilentool Mage.exe
verwenden, um Ihre ClickOnce-Manifeste zu erstellen. In dieser exemplarischen Vorgehensweise wird beschrieben, wie Sie eine ClickOnce-Bereitstellung mithilfe der Befehlszeilenversion (Mage.exe) oder der grafischen Version (MageUI.exe) des Manifest Generation and Editing Tool erstellen.
Hinweis
Verwenden Sie in ClickOnce für .NET Core 3.1 und .NET 5 oder höher dotnet-mage.exe anstelle von Mage.exe. Weitere Informationen finden Sie unter ClickOnce für .NET.
Voraussetzungen
Diese exemplarische Vorgehensweise enthält einige Voraussetzungen und Optionen, die Sie vor dem Erstellen einer Bereitstellung auswählen müssen.
Installieren Sie
Mage.exe
und MageUI.exe.Mage.exe
undMageUI.exe
sind Teil des Windows Software Development Kit (SDK). Sie müssen entweder das Windows SDK oder die Version des Windows SDK installiert haben, die in Visual Studio enthalten ist. Weitere Informationen finden Sie unter Windows SDK auf MSDN.Stellen Sie eine Anwendung bereit, die bereitgestellt werden soll.
In dieser exemplarischen Vorgehensweise wird davon ausgegangen, dass Sie über eine Windows-Anwendung verfügen, die Sie bereitstellen möchten. Diese Anwendung wird als „AppToDeploy“ bezeichnet.
Bestimmen Sie, wie die Distribution der Bereitstellung erfolgen soll.
Die Distributionsoptionen umfassen: Web, Dateifreigabe oder CD. Weitere Informationen finden Sie unter ClickOnce Security and Deployment.
Ermitteln Sie, ob die Anwendung eine erhöhte Vertrauensstufe erfordert.
Wenn Ihre Anwendung volle Vertrauenswürdigkeit erfordert, z. B. Vollzugriff auf das System des Benutzers, können Sie die
-TrustLevel
-Option vonMage.exe
verwenden, um dies festzulegen. Wenn Sie einen benutzerdefinierten Berechtigungssatz für Ihre Anwendung definieren möchten, können Sie den Internet- oder Intranetberechtigungsabschnitt aus einem anderen Manifest kopieren, an Ihre Anforderungen anpassen und ihn dem Anwendungsmanifest mit einem Text-Editor oder mit MageUI.exehinzufügen. Weitere Informationen finden Sie unter Überblick über die Bereitstellung vertrauenswürdiger Anwendungen.Rufen Sie ein Authenticode-Zertifikat ab.
Sie sollten Ihre Bereitstellung mit einem Authenticode-Zertifikat signieren. Sie können ein Testzertifikat mit Visual Studio oder den Tools
MageUI.exe
,MakeCert.exe
oderPvk2Pfx.exe
generieren, oder Sie können ein Zertifikat von einer Zertifizierungsstelle (ZS) abrufen. Wenn Sie sich für die Bereitstellung vertrauenswürdiger Anwendungen entscheiden, müssen Sie auch eine einmalige Installation des Zertifikats auf allen Clientcomputern durchführen. Weitere Informationen finden Sie unter Trusted Application Deployment Overview.Hinweis
Sie können Ihre Bereitstellung auch mit einem CNG-Zertifikat signieren, das Sie von einer Zertifizierungsstelle abrufen können.
Stellen Sie sicher, dass die Anwendung kein Manifest mit UAC-Informationen enthält.
Sie müssen ermitteln, ob Ihre Anwendung ein Manifest mit UAC-Informationen (User Account Control) enthält, z. B. ein
<dependentAssembly>
-Element. Um ein Anwendungsmanifest zu untersuchen, können Sie das Windows Sysinternals-Hilfsprogramm Sigcheck verwenden.Wenn Ihre Anwendung ein Manifest mit UAC-Details enthält, müssen Sie es ohne die UAC-Informationen neu erstellen. Öffnen Sie für ein C#-Projekt in Visual Studio die Projekteigenschaften, und wählen Sie die Registerkarte „Anwendung“ aus. Wählen Sie in der Dropdownliste Manifest die Option Anwendung ohne Manifest erstellen aus. Öffnen Sie für ein Visual Basic-Projekt in Visual Studio die Projekteigenschaften, wählen Sie die Registerkarte „Anwendung“ aus, und klicken Sie dann auf UAC-Einstellungen anzeigen. Entfernen Sie in der geöffneten Manifestdatei alle Elemente innerhalb des einzelnen
<asmv1:assembly>
-Elements.Bestimmen Sie, ob die Anwendung Voraussetzungen auf dem Clientcomputer erfordert.
ClickOnce-Anwendungen, die aus Visual Studio bereitgestellt werden, können in Ihrer Bereitstellung als Voraussetzung einen Bootstrapper für die Installation (setup.exe) enthalten. In dieser exemplarischen Vorgehensweise werden die beiden Manifeste erstellt, die für eine ClickOnce-Bereitstellung erforderlich sind. Sie können einen erforderlichen Bootstrapper erstellen, indem Sie den Task GenerateBootstrapper verwenden.
So stellen Sie eine Anwendung mit dem Befehlszeilentool „Mage.exe“ bereit
Erstellen Sie ein Verzeichnis, in dem Sie Ihre ClickOnce-Bereitstellungsdateien speichern.
Erstellen Sie im soeben erstellten Bereitstellungsverzeichnis ein Versionsunterverzeichnis. Wenn Sie die Anwendung zum ersten Mal bereitstellen, nennen Sie das Versionsunterverzeichnis 1.0.0.0.0.
Hinweis
Die Version Ihrer Bereitstellung kann sich von der Version Ihrer Anwendung unterscheiden.
Kopieren Sie alle Anwendungsdateien in das Versionsunterverzeichnis, einschließlich ausführbarer Dateien, Assemblys, Ressourcen und Datendateien. Bei Bedarf können Sie weitere Unterverzeichnisse erstellen, die zusätzliche Dateien enthalten.
Öffnen Sie die Windows SDK- oder Visual Studio-Eingabeaufforderung, und navigieren Sie zum Versionsunterverzeichnis.
Erstellen Sie das Anwendungsmanifest mit einem Aufruf von Mage.exe. Die folgende Anweisung erstellt ein Anwendungsmanifest für Code, der für die Ausführung mit dem Intel x86-Prozessor kompiliert wurde.
mage -New Application -Processor x86 -ToFile AppToDeploy.exe.manifest -name "My App" -Version 1.0.0.0 -FromDirectory .
Hinweis
Achten Sie darauf, dass Sie den Punkt (.) nach der
-FromDirectory
-Option einschließen, der das aktuelle Verzeichnis angibt. Wenn Sie den Punkt nicht einschließen, müssen Sie den Pfad zu Ihren Anwendungsdateien angeben.Signieren Sie das Anwendungsmanifest mit Ihrem Authenticode-Zertifikat. Ersetzen Sie
mycert.pfx
durch den Pfad zu Ihrer Zertifikatdatei. Ersetzen Sie passwd durch das Kennwort für Ihre Zertifikatdatei.mage -Sign AppToDeploy.exe.manifest -CertFile mycert.pfx -Password passwd
Beginnend mit dem .NET Framework 4.6.2 SDK, das in Visual Studio und im Windows SDK enthalten ist, signiert
mage.exe
Manifeste mit CNG- und Authenticode-Zertifikaten. Verwenden Sie dieselben Befehlszeilenparameter wie bei Authenticode-Zertifikaten.Wechseln Sie in das Stammverzeichnis des Bereitstellungsverzeichnisses.
Generieren Sie das Bereitstellungsmanifest mit einem Aufruf von
Mage.exe
. Standardmäßig markiertMage.exe
Ihre ClickOnce-Bereitstellung als installierte Anwendung, sodass sie sowohl online als auch offline ausgeführt werden kann. Um die Anwendung nur verfügbar zu machen, wenn der Benutzer online ist, verwenden Sie die-Install
-Option mit dem Wertfalse
. Wenn Sie den Standardwert verwenden und Benutzer Ihre Anwendung von einer Website oder Dateifreigabe installieren, stellen Sie sicher, dass der Wert der-ProviderUrl
-Option auf den Speicherort des Anwendungsmanifests auf dem Webserver oder der Freigabe verweist.mage -New Deployment -Processor x86 -Install true -Publisher "My Co." -ProviderUrl "\\myServer\myShare\AppToDeploy.application" -AppManifest 1.0.0.0\AppToDeploy.exe.manifest -ToFile AppToDeploy.application
Signieren Sie das Bereitstellungsmanifest mit Ihrem Authenticode- oder CNG-Zertifikat.
mage -Sign AppToDeploy.application -CertFile mycert.pfx -Password passwd
Kopieren Sie alle Dateien im Bereitstellungsverzeichnis auf das Bereitstellungsziel bzw. auf die -medien. Dies kann entweder ein Ordner auf einer Website oder eine FTP-Website, eine Dateifreigabe oder eine CD-ROM sein.
Stellen Sie für Ihre Benutzer die URL, den UNC-Pfad oder physische Medien bereit, die für die Installation Ihrer Anwendung erforderlich sind. Wenn Sie eine URL oder einen UNC-Pfad angeben, müssen Sie Ihren Benutzern den vollständigen Pfad zum Bereitstellungsmanifest zur Verfügung stellen. Wenn AppToDeploy beispielsweise im Verzeichnis AppToDeploy für
http://webserver01/
bereitgestellt wird, lautet der vollständige URL-Pfadhttp://webserver01/AppToDeploy/AppToDeploy.application
.
So stellen Sie eine Anwendung mit dem grafischen Tool „MageUI.exe“ bereit
Erstellen Sie ein Verzeichnis, in dem Sie Ihre ClickOnce-Bereitstellungsdateien speichern.
Erstellen Sie im soeben erstellten Bereitstellungsverzeichnis ein Versionsunterverzeichnis. Wenn Sie die Anwendung zum ersten Mal bereitstellen, nennen Sie das Versionsunterverzeichnis 1.0.0.0.0.
Hinweis
Die Version Ihrer Bereitstellung kann sich von der Version Ihrer Anwendung unterscheiden.
Kopieren Sie alle Anwendungsdateien in das Versionsunterverzeichnis, einschließlich ausführbarer Dateien, Assemblys, Ressourcen und Datendateien. Bei Bedarf können Sie weitere Unterverzeichnisse erstellen, die zusätzliche Dateien enthalten.
Starten Sie das grafische Tool
MageUI.exe
.MageUI.exe
Erstellen Sie ein neues Anwendungsmanifest, indem Sie im Menü Datei, Neu, Anwendungsmanifest auswählen.
Geben Sie auf der Standardregisterkarte Name den Namen und die Versionsnummer dieser Bereitstellung ein. Geben Sie auch den Prozessor an, für den Ihre Anwendung erstellt wurde, z. B. x86.
Wählen Sie die Registerkarte Dateien und dann die Schaltfläche mit den Auslassungspunkten (...) neben dem Textfeld Anwendungsverzeichnis aus. Ein Dialogfeld Nach Ordner suchen wird angezeigt.
Wählen Sie das Versionsunterverzeichnis aus, das Ihre Anwendungsdateien enthält, und wählen Sie dann OK aus.
Wenn Sie die Bereitstellung über Internetinformationsdienste (IIS) ausführen, aktivieren Sie das Kontrollkästchen Beim Auffüllen DEPLOY-Erweiterung jeder Datei hinzufügen, die sie nicht aufweist.
Wechseln Sie zur Schaltfläche Auffüllen, um der Dateiliste alle Ihre Anwendungsdateien hinzuzufügen. Wenn Ihre Anwendung mehrere ausführbare Dateien enthält, markieren Sie die ausführbare Hauptdatei für diese Bereitstellung als Startanwendung, indem Sie Einstiegspunkt aus der Dropdownliste Dateityp auswählen. (Wenn Ihre Anwendung nur eine ausführbare Datei enthält, markiert
MageUI.exe
diese für Sie.)Wählen Sie die Registerkarte Erforderliche Berechtigungen und dann die Vertrauensebene aus, die Sie für Ihre Anwendung benötigen. Der Standardwert ist FullTrust. Dieser ist für die meisten Anwendungen geeignet.
Wählen Sie Datei-, Speichern unter im Menü aus. Ein Dialogfeld „Signaturoptionen“ wird angezeigt, in dem Sie aufgefordert werden, das Anwendungsmanifest zu signieren.
Wenn Sie ein Zertifikat als Datei in Ihrem Dateisystem gespeichert haben, verwenden Sie die Option Mit Zertifikatdatei signieren, und wählen Sie das Zertifikat aus dem Dateisystem aus, indem Sie die Schaltfläche mit den Auslassungspunkten (...) verwenden. Geben Sie dann Ihr Zertifikatkennwort ein.
Oder
Wenn ihr Zertifikat in einem Zertifikatspeicher aufbewahrt wird, auf den von Ihrem Computer aus zugegriffen werden kann, wählen Sie die Option Mit gespeichertem Zertifikat signieren aus, und wählen Sie das Zertifikat aus der bereitgestellten Liste aus.
Wählen Sie OK aus, um Ihr Anwendungsmanifest zu signieren. Das Dialogfeld Speichern unter wird angezeigt.
Geben Sie im Dialogfeld Speichern unter das Versionsverzeichnis an, und wählen Sie dann Speichern aus.
Wählen Sie im Menü Datei, Neu, Bereitstellungsmanifest aus, um Ihr Bereitstellungsmanifest zu erstellen.
Geben Sie auf der Registerkarte Name einen Namen und eine Versionsnummer für diese Bereitstellung an (in diesem Beispiel 1.0.0.0). Geben Sie auch den Prozessor an, für den Ihre Anwendung erstellt wurde, z. B. x86.
Wählen Sie die Registerkarte Beschreibung aus, und geben Sie Werte für Herausgeber und Produkt an. (Produkt ist der Name, der für Ihre Anwendung im Windows-Startmenü angezeigt wird, wenn Ihre Anwendung für Offlineverwendung auf einem Clientcomputer installiert wird.)
Wählen Sie die Registerkarte Bereitstellungsoptionen aus, und geben Sie im Textfeld Startspeicherort den Speicherort des Anwendungsmanifests auf dem Webserver oder der Dateifreigabe an. Beispiel: \\myServer\myShare\AppToDeploy.application.
Wenn Sie die
.deploy
-Erweiterung in einem vorherigen Schritt hinzugefügt haben, wählen Sie hier auch DEPLOY-Dateinamenerweiterung verwenden aus.Wählen Sie die Registerkarte Updateoptionen aus, und geben Sie an, wie oft diese Anwendung aktualisiert werden soll. Wenn Ihre Anwendung UpdateCheckInfo verwendet, um selbst nach Updates zu suchen, deaktivieren Sie das Kontrollkästchen Diese Anwendung soll nach Updates suchen.
Wählen Sie die Registerkarte Anwendungsreferenz aus, und wechseln Sie dann zur Schaltfläche Manifest auswählen. Ein Dialogfeld zum Öffnen wird angezeigt.
Wählen Sie das Anwendungsmanifest aus, das Sie zuvor erstellt haben, und wählen Sie dann Öffnen aus.
Wählen Sie Datei-, Speichern unter im Menü aus. Ein Dialogfeld Signaturoptionen wird angezeigt, in dem Sie aufgefordert werden, das Bereitstellungsmanifest zu signieren.
Wenn Sie ein Zertifikat als Datei in Ihrem Dateisystem gespeichert haben, verwenden Sie die Option Mit Zertifikatdatei signieren, und wählen Sie das Zertifikat aus dem Dateisystem aus, indem Sie die Schaltfläche mit den Auslassungspunkten (...) verwenden. Geben Sie dann Ihr Zertifikatkennwort ein.
Oder
Wenn ihr Zertifikat in einem Zertifikatspeicher aufbewahrt wird, auf den von Ihrem Computer aus zugegriffen werden kann, wählen Sie die Option Mit gespeichertem Zertifikat signieren aus, und wählen Sie das Zertifikat aus der bereitgestellten Liste aus.
Navigieren Sie zu OK, um Ihr Bereitstellungsmanifest zu signieren. Das Dialogfeld Speichern unter wird angezeigt.
Navigieren Sie im Dialogfeld Speichern unter ein Verzeichnis nach oben zum Stammverzeichnis Ihrer Bereitstellung, und wählen Sie dann Speichern aus.
Kopieren Sie alle Dateien im Bereitstellungsverzeichnis auf das Bereitstellungsziel bzw. auf die -medien. Dies kann entweder ein Ordner auf einer Website oder eine FTP-Website, eine Dateifreigabe oder eine CD-ROM sein.
Stellen Sie für Ihre Benutzer die URL, den UNC-Pfad oder physische Medien bereit, die für die Installation Ihrer Anwendung erforderlich sind. Wenn Sie eine URL oder einen UNC-Pfad angeben, müssen Sie Ihren Benutzern den vollständigen Pfad zum Bereitstellungsmanifest zur Verfügung stellen. Wenn AppToDeploy beispielsweise im Verzeichnis AppToDeploy für
http://webserver01/
bereitgestellt wird, lautet der vollständige URL-Pfadhttp://webserver01/AppToDeploy/AppToDeploy.application
.
Nächste Schritte
Wenn Sie eine neue Version der Anwendung bereitstellen müssen, erstellen Sie ein neues Verzeichnis mit dem Namen der neuen Version (z. B. 1.0.0.1), und kopieren Sie die neuen Anwendungsdateien in das neue Verzeichnis. Nun müssen Sie die vorherigen Schritte ausführen, um ein neues Anwendungsmanifest zu erstellen und zu signieren sowie das Bereitstellungsmanifest zu aktualisieren und zu signieren. Achten Sie darauf, die gleiche höhere Version sowohl in Mage.exe
-New
und als auch in -Update
-Aufrufen anzugeben, da ClickOnce nur höhere Versionen aktualisiert, wobei die am weitesten links stehende Ganzzahl am wichtigsten ist. Wenn Sie MageUI.exeverwendet haben, können Sie das Bereitstellungsmanifest aktualisieren, indem Sie es öffnen, die Registerkarte Anwendungsreferenz auswählen, zur Schaltfläche Manifest auswählen wechseln und dann das aktualisierte Anwendungsmanifest auswählen.