Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In Visual Studio können Sie Projekte über die Befehlszeile erstellen, auch wenn sie in der integrierten Entwicklungsumgebung (IDE) erstellt werden. Tatsächlich können Sie ein Projekt neu erstellen, das mit Visual Studio auf einem anderen Computer erstellt wurde, auf dem nur .NET Framework installiert ist. Mit dieser Funktion können Sie einen Build mithilfe eines automatisierten Prozesses reproduzieren, z. B. in einem zentralen Buildlabor oder mit erweiterten Skripttechniken, die über den Umfang des Projekts selbst hinausgehen.
Hinweis
Informationen zum Erstellen von .NET ClickOnce-Anwendungen über die Befehlszeile finden Sie unter Erstellen von .NET ClickOnce-Anwendungen über die Befehlszeile.
Verwenden von MSBuild zum Reproduzieren von .NET Framework ClickOnce-Anwendungsbereitstellungen
Wenn Sie an der Befehlszeile aufrufen msbuild /target:publish , weist dieser Befehl das MSBuild-System an, das Projekt zu erstellen und eine ClickOnce-Anwendung im Veröffentlichungsordner zu erstellen. Dieser Befehl entspricht dem Auswählen des Befehls "Veröffentlichen" in der IDE.
Dieser Befehl führt msbuild.exeaus, der sich auf dem Pfad in der Visual Studio-Eingabeaufforderungsumgebung befindet.
Ein "Ziel" ist ein Indikator für MSBuild zum Verarbeiten des Befehls. Die wichtigsten Ziele sind das "Build"-Ziel und das "publish"-Ziel. Das Buildziel entspricht der Auswahl des Befehls "Build" (oder Drücken von F5) in der IDE. Wenn Sie ihr Projekt nur erstellen möchten, können Sie dies eingeben msbuild. Dieser Befehl funktioniert, da das Buildziel das Standardziel für alle Projekte ist, die von Visual Studio generiert werden. Daher müssen Sie das Build-Ziel nicht explizit angeben. Die Eingabe msbuild ist daher derselbe Vorgang wie die Eingabe msbuild /target:build.
Der /target:publish Befehl weist MSBuild an, das Veröffentlichungsziel aufzurufen. Das Veröffentlichungsziel hängt vom Buildziel ab, was bedeutet, dass der Veröffentlichungsvorgang ein übergeordneter Prozess des Buildvorgangs ist. Wenn Sie beispielsweise eine Änderung an Visual Basic- oder C#-Quelldateien vorgenommen haben, erstellt der Veröffentlichungsvorgang automatisch die entsprechende Assembly neu.
Informationen zum Generieren einer vollständigen ClickOnce-Bereitstellung mithilfe des Befehlszeilentools Mage.exe zum Erstellen Ihres ClickOnce-Manifests finden Sie unter Walkthrough: Manually deploy a ClickOnce application.
Erstellen und Entwickeln einer einfachen ClickOnce-Anwendung mit MSBuild
Die einfachste Möglichkeit zum Erstellen eines Veröffentlichungsprofils ist die Verwendung von Visual Studio. Zum Veröffentlichen mit MSBuild ist ein Veröffentlichungsprofil erforderlich.
Erstellen und Veröffentlichen eines ClickOnce-Projekts
Öffnen Sie Visual Studio, und erstellen Sie ein neues Projekt.
Wählen Sie die Projektvorlage Windows Forms-App (.NET Framework) oder WPF-App (.NET Framework) aus, und nennen Sie das Projekt
CmdLineDemo.Wählen Sie im Menü " Erstellen " den Befehl "Veröffentlichen" aus .
Dieser Schritt stellt sicher, dass das Projekt ordnungsgemäß für die Erstellung einer ClickOnce-Anwendungsbereitstellung konfiguriert ist.
Der Veröffentlichungsassistent wird angezeigt.
Wählen Sie im Veröffentlichungs-Assistenten "Fertig stellen" aus.
Visual Studio generiert und zeigt die Standardwebseite an, die alsPublish.htmbezeichnet wird.
Speichern Sie Ihr Projekt, und notieren Sie sich den Ordnerspeicherort, in dem es gespeichert ist.
In den vorherigen Schritten wird ein ClickOnce-Projekt erstellt, das zum ersten Mal veröffentlicht wurde. Jetzt können Sie den Build außerhalb der IDE reproduzieren.
Den Build über die Kommandozeile reproduzieren
Beenden Sie Visual Studio.
Wählen Sie im Windows-StartmenüTools>Befehlszeilen>Entwickler-Eingabeaufforderung aus.
Die Visual Studio Developer Command Prompt wird geöffnet.
Stellen Sie in der Visual Studio-Eingabeaufforderung sicher, dass das aktuelle Verzeichnis den Speicherort des zuvor erstellten Projekts anzeigt.
Wenn Sie nicht im Projektverzeichnis arbeiten, geben Sie einen Befehl ein, um zum gewünschten Speicherort zu wechseln, z. B.
chdir C:\Users\username\source\repos\CmdLineDemo.Um die im vorherigen Abschnitt erstellten vorhandenen Dateien zu entfernen, geben Sie die Zeichenfolge
rmdir /s publishein.Dieser Schritt ist optional, stellt aber sicher, dass der Befehlszeilenbuild alle neuen Dateien erzeugt.
Geben Sie
msbuild /target:publishein.Die vorstehenden Schritte erzeugen eine vollständige ClickOnce-Anwendungsbereitstellung in einem Unterordner Ihres Projekts mit dem Namen "Veröffentlichen". CmdLineDemo.application ist das ClickOnce-Bereitstellungsmanifest. Der Ordner CmdLineDemo_1.0.0.0.0 enthält die Dateien CmdLineDemo.exe und CmdLineDemo.exe.manifest, das ClickOnce-Anwendungsmanifest. Setup.exe ist der Bootstrapper, der standardmäßig für die Installation von .NET Framework konfiguriert ist. Der Ordner DotNetFX enthält die weiterverteilbaren Dateien für .NET Framework. Die Dateien an diesem Speicherort umfassen den gesamten Satz von Dateien, die Sie für die Bereitstellung Ihrer Anwendung über das Web oder über UNC oder CD/DVD benötigen.
Hinweis
Das MSBuild-System verwendet die PublishDir-Option, um den Speicherort für die Ausgabe, wie z. B. msbuild /t:publish /p:PublishDir="<specific location>", anzugeben.
Veröffentlichung der Prozessaussgabe
MSBuild verwendet die PublishDir-Eigenschaft, um den Speicherort für die Build-Ausgabe festzulegen, einschließlich der Artefakte, die beim Build erstellt werden. Der PublishDir Wert, den MSBuild als Ziel für die Veröffentlichung verwendet, wird standardmäßig aus der PublishDir Eigenschaft in der Projektdatei (.NET Framework) abgerufen. Sie können dieses Verhalten in der Befehlszeile MSBuild überschreiben, indem Sie die /p Option verwenden. Wenn Sie die Einstellung außer Kraft setzen, wird die Veröffentlichung an den angegebenen Speicherort gesendet. Die Ausgabe wird während des MSBuild-Schritts beim Veröffentlichen generiert. Jedes MSBuild-Ziel mit AfterTargets="ClickOncePublish" Ausführung, nachdem diese Kopie erstellt wurde.
Die PublishUrl Eigenschaft wird im Gegensatz zum PublishDirMSBuild-Schritt nicht verwendet.
PublishUrl wird ignoriert, wenn Sie MSBuild direkt aufrufen, um über die Befehlszeile zu veröffentlichen.
Wenn die Veröffentlichung in Visual Studio IDE gestartet wird, ruft Visual Studio MSBuild auf, um Artefakte an dem PublishDir Speicherort zu veröffentlichen. Nach Abschluss dieses MSBuild-Schritts veröffentlicht Visual Studio dann ClickOnce-spezifische Dateien an den Speicherort, auf den PublishUrl verwiesen wird. Dieser zweite Schritt wird innerhalb des Visual Studio-Prozesses ausgeführt. Sie können während dieses Schritts keine Ziel-/Aufgabe einfügen, die ausgeführt werden soll, da es sich um einen Visual Studio-Prozess handelt.
Kopieren Sie für MSBuild-Bereitstellungen, die Visual Studio nicht verwenden, alle Dateien im Bereitstellungsverzeichnis in das Bereitstellungsziel oder das Bereitstellungsmedium. Das Bereitstellungsverzeichnis kann entweder ein Ordner auf einer Website oder ftp-Website, eine Dateifreigabe oder eine CD-ROM sein. Sie können z. B. ein Drittanbietertool oder eine benutzerdefinierte MSBuild-Aufgabe verwenden, um die ClickOnce-Dateien zu kopieren.
Für jede Nachbearbeitung im PublishUrl Ordner müssen Sie über ein separates Skript verfügen.
Von Bedeutung
Wenn PublishDir auf denselben Speicherort wie PublishUrl festgelegt ist, wird die duplizierte Kompilierungsausgabe an den Speicherort PublishUrl kopiert. Sie können dieses Problem in Visual Studio 2022, Version 17.4 und höher, vermeiden, indem Sie ein neues Profil erstellen. Das neue Profil legt einen anderen Speicherort als PublishDir fest, im Gegensatz zu PublishUrl. Am Ende des Veröffentlichungsvorgangs werden die relevanten ClickOnce-Dateien vom Speicherort PublishDir an den Speicherort PublishUrl kopiert.
Veröffentlichen von Eigenschaften
Wenn Sie die Anwendung mithilfe der vorherigen Verfahren veröffentlichen, werden die folgenden Eigenschaften durch den Veröffentlichungs-Assistenten in die Projektdatei eingefügt. Diese Eigenschaften beeinflussen direkt die Erstellung der ClickOnce-Anwendung.
In CmdLineDemo.vbproj / CmdLineDemo.csproj:
<AssemblyOriginatorKeyFile>WindowsApplication3.snk</AssemblyOriginatorKeyFile>
<GenerateManifests>true</GenerateManifests>
<TargetZone>LocalIntranet</TargetZone>
<PublisherName>Microsoft</PublisherName>
<ProductName>CmdLineDemo</ProductName>
<PublishUrl>http://localhost/CmdLineDemo</PublishUrl>
<Install>true</Install>
<ApplicationVersion>1.0.0.*</ApplicationVersion>
<ApplicationRevision>1</ApplicationRevision>
<UpdateEnabled>true</UpdateEnabled>
<UpdateRequired>false</UpdateRequired>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdateUrlEnabled>false</UpdateUrlEnabled>
<IsWebBootstrapper>true</IsWebBootstrapper>
<BootstrapperEnabled>true</BootstrapperEnabled>
Bei .NET Framework-Projekten können Sie diese Eigenschaften in der Befehlszeile außer Kraft setzen, ohne die Projektdatei selbst zu ändern. Der folgende Code erstellt beispielsweise die ClickOnce-Anwendungsbereitstellung ohne bootstrapper:
msbuild /target:publish /property:BootstrapperEnabled=false
Veröffentlichungseigenschaften werden in Visual Studio von den Eigenschaftenseiten "Veröffentlichen", "Sicherheit" und " Signieren " des Project-Designers gesteuert.
Die folgenden Veröffentlichungseigenschaften werden auf verschiedenen Eigenschaftenseiten des Anwendungs-Designers festgelegt.
-
AssemblyOriginatorKeyFilebestimmt die Schlüsseldatei, die zum Signieren Ihrer ClickOnce-Anwendungsmanifeste verwendet wird. Dieser Schlüssel kann auch verwendet werden, um Ihren Assemblys einen starken Namen zuzuweisen. Diese Eigenschaft wird auf der Signaturseite des Project-Designers festgelegt.
Die folgenden Eigenschaften werden auf der Seite "Sicherheit" festgelegt:
Die ClickOnce-Sicherheitseinstellungen aktivieren bestimmt, ob ClickOnce-Manifeste generiert werden. Wenn ein Projekt anfangs erstellt wird, ist die ClickOnce-Manifestgenerierung standardmäßig deaktiviert. Der Assistent aktiviert dieses Kennzeichen automatisch, wenn Sie es zum ersten Mal bereitstellen.
TargetZone bestimmt die Vertrauensstufe, die in Ihr ClickOnce-Anwendungsmanifest ausgegeben werden soll. Mögliche Werte sind "Internet", "LocalIntranet" und "Custom". Internet und LocalIntranet bewirken, dass ein Standardberechtigungssatz in Ihr ClickOnce-Anwendungsmanifest ausgegeben wird. LocalIntranet ist der Standardwert und bedeutet im Grunde vollständiges Vertrauen. Benutzerdefiniert gibt an, dass nur die in der Basisdatei "app.manifest " explizit angegebenen Berechtigungen in das ClickOnce-Anwendungsmanifest ausgegeben werden sollen. Die Datei "app.manifest " ist eine partielle Manifestdatei, die nur die Vertrauensinformationsdefinitionen enthält. Es ist eine ausgeblendete Datei, die Ihrem Projekt automatisch hinzugefügt wird, wenn Sie Berechtigungen auf der Seite "Sicherheit " konfigurieren.
Die folgenden Eigenschaften werden auf der Seite " Veröffentlichen " festgelegt:
PublishUrlist der Speicherort, an dem die Anwendung in der IDE veröffentlicht wird. Sie wird in das ClickOnce-Anwendungsmanifest eingefügt, wenn weder dieInstallUrl- noch dieUpdateUrl-Eigenschaft angegeben ist.ApplicationVersionGibt die Version der ClickOnce-Anwendung an. Die Version ist eine vierstellige Nummer. Wenn die letzte Ziffer ein "*" (Sternchen) ist, wird derApplicationRevision-Wert durch den Wert ersetzt, der zur Build-Zeit ins Manifest eingefügt wurde.ApplicationRevisiongibt die Überarbeitung an. Dieser Wert ist eine ganze Zahl, die bei jeder Veröffentlichung in der IDE erhöht wird. Beachten Sie, dass es für Builds, die an der Befehlszeile ausgeführt werden, nicht automatisch erhöht wird.Installbestimmt, ob es sich bei der Anwendung um eine installierte Anwendung oder um eine aus der Webanwendung ausgeführte Anwendung handelt.InstallUrl(nicht angezeigt) ist der Speicherort, an dem Benutzer die Anwendung installieren. Wenn angegeben, wird dieser Wert in den setup.exe Bootstrapper verbrannt, wenn dieIsWebBootstrapperEigenschaft aktiviert ist. Es wird außerdem in das Anwendungsmanifest eingefügt, wennUpdateUrlnicht angegeben ist.SupportUrl(nicht angezeigt) ist der Speicherort, der im Dialogfeld "Programme hinzufügen/entfernen " für eine installierte Anwendung verknüpft ist.
Im Dialogfeld Anwendungsupdates, das von der Seite Veröffentlichen aus aufgerufen wird, werden die folgenden Eigenschaften festgelegt.
UpdateEnabledgibt an, ob die Anwendung nach Updates suchen soll.UpdateModeGibt entweder Vordergrundaktualisierungen oder Hintergrundaktualisierungen an.UpdateIntervalGibt an, wie häufig die Anwendung nach Updates suchen soll.UpdateIntervalUnitsGibt an, ob derUpdateIntervalWert in Einheiten von Stunden, Tagen oder Wochen liegt.UpdateUrl(nicht angezeigt) ist der Speicherort, von dem die Anwendung Updates empfängt. Wenn angegeben, wird dieser Wert in das Anwendungsmanifest eingefügt.
Die folgenden Eigenschaften werden im Dialogfeld "Veröffentlichungsoptionen" auf der Seite "Veröffentlichen" festgelegt.
PublisherNameGibt den Namen des Herausgebers an, der in der Eingabeaufforderung angezeigt wird, die beim Installieren oder Ausführen der Anwendung angezeigt wird. Bei einer installierten Anwendung wird er auch verwendet, um den Ordnernamen im Startmenü anzugeben.ProductNameGibt den Namen des Produkts an, das in der Eingabeaufforderung angezeigt wird, die beim Installieren oder Ausführen der Anwendung angezeigt wird. Bei einer installierten Anwendung wird auch der Verknüpfungsname im Startmenü angegeben.
In dem Dialogfeld „Voraussetzungen”, das von der Seite „Veröffentlichen” aus zugänglich ist, werden die folgenden Eigenschaften festgelegt.
BootstrapperEnabledbestimmt, ob der setup.exe Bootstrapper generiert werden soll.IsWebBootstrapperbestimmt, ob der setup.exe Bootstrapper über das Web oder im datenträgerbasierten Modus funktioniert.
Verwendungsoptionen: InstallURL, SupportUrl, PublishURL, UpdateURL
In der folgenden Tabelle sind die vier URL-Optionen für die ClickOnce-Bereitstellung aufgeführt.
| URL-Option | Description |
|---|---|
PublishURL |
Erforderlich, um die ClickOnce-Anwendung auf einer Website zu veröffentlichen. |
InstallURL |
Wahlfrei. Legen Sie diese URL-Option fest, wenn sich der Installationsort von der PublishURL unterscheidet. Sie können z. B. den PublishURL auf einen FTP-Pfad setzen und die InstallURL auf eine Webadresse festlegen. |
SupportURL |
Wahlfrei. Legen Sie diese URL-Option fest, wenn sich die Support-Seite von dem PublishURL unterscheidet. Sie könnten z. B. den SupportURL auf die Kundenservice-Website Ihres Unternehmens festlegen. |
UpdateURL |
Wahlfrei. Legen Sie diese URL-Option fest, wenn sich der Aktualisierungsspeicherort von dem InstallURLunterscheidet. Sie könnten beispielsweise den PublishURL auf einen FTP-Pfad und den UpdateURL auf eine URL festlegen. |