ClickOnce erlauben, mehrere veröffentlichte Programme aus demselben Projekt in derselben Umgebung zu installieren (nur .NET Framework-Editionen)

Diese Seite wurde aktualisiert :
Erstellungsdatum der Seite :

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:

Referenz: (.NET) Wenn ich die App nach der Veröffentlichung mit ClickOnce starte, erhalte ich, dass "die Platzierungs-ID nicht mit dem Abonnement übereinstimmt".

  • 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:

erforderlich
Beschreibung 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.