ClickOnce erlauben, mehrere veröffentlichte Programme aus demselben Projekt in derselben Umgebung zu installieren (nur .NET Framework-Editionen)
Umgebung für die Betriebsprüfung
- Visual Studio
-
- Visual Studio 2022
- .NET Framework
-
- .NET Framework 4.8
Erforderliche Umgebungen
- Fachwerk
-
- Windows Forms (.NET Framework) im Allgemeinen
- WPF (.NET Framework) allgemein
Zuerst
In diesen Tipps wird beschrieben, wie Sie mehrere veröffentlichte ClickOnce aus demselben Projekt separat in derselben Umgebung installieren.
Informationen zum Verfahren zum Veröffentlichen mehrerer Kopien aus demselben Projekt in verschiedenen Konfigurationen
Wenn beispielsweise auch im selben Projekt die Verarbeitungsinhalte in Abhängigkeit von der Buildkonfiguration geändert werden, können Sie sie als separates Programm veröffentlichen. Dies ist in der .NET (Core)-Version möglich, jedoch nicht in der .NET Framework-Version mit den Standardfunktionen von Visual Studio.
Diese Methode wird in den folgenden Tipps mit einem Batch-Programm zusammengefasst. Diese Tipps werden unter der Prämisse erläutert, dass die folgenden Inhalte abgeschlossen sind.
Bedingungen, unter denen ClickOnce als separate Anwendungen installiert wird
Wenn Sie mit dem oben beschriebenen Batchprogramm veröffentlichen, wird die Buildkonfiguration geändert, aber beide werden als dieselbe Anwendung behandelt. Wenn Sie versuchen, zwei in derselben Umgebung zu installieren, tritt ein Konflikt auf, und die Installation schlägt fehl, auch wenn Sie versuchen, später zu installieren.
Ich muss dies als eine separate Anwendung erscheinen lassen, aber laut dem referenzierten Artikel identifizieren die folgenden Parameter die Anwendung:
- Name der Anwendung
- Public-Key-Token
- Kultur
- Prozessorarchitektur (z. B. x86)
Unter diesen denke ich, dass es unerwünscht ist, "Kultur" und "Prozessorarchitektur" zu ändern, da die Möglichkeit unbeabsichtigter Verarbeitungsergebnisse besteht.
Ich denke, dass es eine Möglichkeit gibt, den "Anwendungsnamen" zu ändern, Grundsätzlich ist es nicht zu empfehlen, da nur ein Name für ein Projekt vergeben werden kann. Es besteht die Möglichkeit, dass mehrere Definitionen durch Buildkonfigurations- und Bedingungsparameter im Inhalt der Projektdatei vorgenommen werden können. Da in Visual Studio nur eine Benutzeroberfläche festgelegt werden kann, ist dies ein wenig gefährlich, da sie je nach Vorgang überschrieben werden kann.
Der Rest ist ein "öffentliches Schlüsseltoken", aber dieses ermöglicht es Ihnen, mehrere Zertifikate zu erstellen. Da es zum Zeitpunkt der ClickOnce-Veröffentlichung als Parameter angegeben werden kann, möchte ich die Anwendung mit dieser Zeit identifizieren.
Verfahren zur Überprüfung des Betriebs
Von der Erstellung des Projekts bis zu dem Punkt, an dem es zur Veröffentlichung als Batchdatei bereit ist, ist es dasselbe wie die folgenden Tipps, also lesen Sie es für das Verfahren bis zu diesem Punkt.
Erstellen eines Zertifikats
Diesmal werden wir mit einem Prüfzertifikat für die Probe bestätigen. Ursprünglich sollte es mit einem regulären Zertifikat durchgeführt werden, aber da es ein anderes Verfahren als das Hauptthema wie die Erstellung von Zertifikaten und die Vorbereitung von Zertifizierungsstellen erfordert, werde ich die Erläuterung zu Zertifikaten ausschließen. In der Produktion ist es in Ordnung, die Testzertifikatdatei durch die Produktionsdatei zu ersetzen.
Nachdem Sie das Projekt erstellt und den Batch für die Veröffentlichung erstellt haben, kehren Sie zu Visual Studio zurück. Öffnen Sie die Projekteigenschaften und wählen Sie Signieren aus dem Menü auf der linken Seite. Es gibt eine Überprüfung auf "Signieren Sie das ClickOnce-Manifest", also überprüfen Sie es.
Erstellen Sie nun zwei Zertifikate. Dieses Mal werden wir es auf diesem Bildschirm erstellen, aber ". pfx" Dateiformat, gibt es kein Problem mit dem Erstellen von Zertifikaten auf andere Weise.
Es gibt eine Schaltfläche "Testzertifikat erstellen" in der unteren rechten Ecke, also klicken Sie darauf.
Sie können auch ein Passwort eingeben, aber es funktioniert, ob Sie es eingeben oder nicht. Wenn Sie jedoch ein Passwort eingeben möchten, wird das Verfahren mühsam sein, daher werde ich es diesmal nicht eingeben.
Für Ihr Projekt wurde eine Zertifikatsdatei (PFX-Datei) generiert. Der hier generierte Dateiname ist fix, kann aber später geändert werden. Die Gültigkeit des hier erstellten Prüfzertifikats beträgt übrigens ein Jahr. Nach einem Jahr müssen Sie ein neues Zertifikat neu erstellen.
Führen Sie die gleichen Schritte aus, um eine weitere zu erstellen.
Dieses Mal werden wir im Debug-Build und im Release-Build veröffentlichen, daher ändern wir den Namen in einen klaren.
Batch-Modifikation
Öffnen Sie die von Ihnen erstellte Batchdatei (.bat) in einem Texteditor, und fügen Sie den Parametern von MSbuild Folgendes hinzu:
erforderlichBeschreibung des Parameternamens | ||
---|---|---|
ManifestKeyFile | Der Dateiname (.pfx) des Zertifikats. Geben Sie einen Pfad relativ oder absolut aus der Projektdatei an. | ○ |
ManifestCertificateFingerabdruck | Der Fingerabdruck des Manifestzertifikats. Der Wert, der eingebracht werden soll, kann alles sein, aber er muss mit allen Mitteln eingesetzt werden. | ○ |
Produktname | Produktname. Es wird zum Anzeigenamen des Startmenüs oder der Liste von Programmen. | △ |
PublisherName | Name des öffentlichen Unternehmens. Er wird zum Ordnernamen, wenn Programme im Startmenü organisiert werden. |
Ändern Sie die Patch-Datei auf der Grundlage des oben Gesagten wie folgt.
ClickOnceDebug veröffentlicht.bat (Beispiel)
call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /t:CopyPublishedApplication /p:Configuration=Debug /p:PublishUrl="publish\Debug\\" /p:InstallUrl="\\xxxxServer\publish_Debug\\" /p:ManifestKeyFile="ClickOnceMultipleInstallDebug.pfx" /p:ManifestCertificateThumbprint="Debug" /p:ProductName="CliclOnce テスト Debug システム" /p:PublisherName="Sorceryforce"
ClickOnceRelease-Problem.bat (Beispiel)
call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /t:CopyPublishedApplication /p:Configuration=Release /p:PublishUrl="publish\Release\\" /p:InstallUrl="\\xxxxServer\publish_Release\\" /p:ManifestKeyFile="ClickOnceMultipleInstallRelease.pfx" /p:ManifestCertificateThumbprint="Release" /p:ProductName="CliclOnce テスト Release システム" /p:PublisherName="Sorceryforce"
ManifestKeyFile
Jeder Wert gibt eine andere Zertifikatsdatei an. ManifestCertificateThumbprint
Der Wert von kann alles sein, aber stellen Sie sicher, dass Sie ihn einschließen, da die Anwendung nicht als eine andere identifiziert werden kann, wenn Sie sie nicht eingeben.
Da diesmal zwei Programme in der gleichen Umgebung installiert sind, wurden übrigens Parameter hinzugefügt, damit ProductName
sie unterschieden werden können. PublisherName
nach Ihren Wünschen.
ausstellen
Führen Sie nach der Eingabe jede Batchdatei aus und veröffentlichen Sie sie.
Wenn sich xxxx.application in der Datei befindet, die Sie veröffentlicht haben, öffnen Sie sie in einem Texteditor und stellen Sie sicher, dass dieser einen anderen Wert hatpublicKeyToken
.
installieren
Nachdem Sie die veröffentlichten Dateien in den Öffentlichen Ordner kopiert haben, führen Sie sie aus, um sie setup.exe
zu installieren.
Wenn Sie das Zertifikat zum Zeitpunkt der Ausstellung eingeben, wird zum Zeitpunkt der Installation der folgende Bildschirm angezeigt. Wenn es sich um ein Testzertifikat handelt, kann der Herausgeber nicht bestätigt werden, also installieren Sie es so, wie es ist.
Das erste Programm wurde installiert und gestartet.
Ich werde versuchen, den anderen zu installieren.
Der andere wurde ebenfalls installiert und gestartet.
Natürlich arbeiten beide gleichzeitig.
ProductName
Da es angehängt wurde, wird es separat im Startmenü angezeigt.
Sie können beide auch in der Liste der Apps sehen.