Tillad ClickOnce at installere flere udgivne programmer fra det samme projekt i det samme miljø (kun .NET Framework-udgaver)

Side opdateret :
Dato for oprettelse af side :

Miljø til kontrol af drift

Visual Studio
  • Visual Studio 2022
.NET Framework
  • .NET Framework 4.8

Påkrævede miljøer

ramme
  • Windows Forms (.NET Framework) generelt
  • WPF (.NET Framework) generelt

Først

Disse tip beskriver, hvordan du installerer flere publicerede ClickOnce fra det samme projekt separat i det samme miljø.

Om proceduren for udgivelse af flere kopier fra det samme projekt i forskellige konfigurationer

Selv i det samme projekt, hvis behandlingsindholdet ændres afhængigt af buildkonfigurationen, kan det f.eks. være en god idé at udgive som et separat program. Dette er muligt i .NET (Core) versionen, men ikke i .NET Framework versionen med standardfunktionerne i Visual Studio.

Denne metode er opsummeret i følgende tip ved hjælp af et batchprogram. Dette tip forklares ud fra den forudsætning, at følgende indhold er afsluttet.

Betingelser, hvorunder ClickOnce installeres som separate applikationer

Hvis du publicerer ved hjælp af det batchprogram, der er beskrevet ovenfor, ændres buildkonfigurationen, men begge behandles som det samme program, Hvis du forsøger at installere to i samme miljø, vil der være en konflikt, og installationen mislykkes, selvom du forsøger at installere senere.

Jeg er nødt til at få dette til at virke som en separat applikation, men ifølge den refererede artikel identificerer følgende parametre applikationen:

Henvisning: (.NET) Når jeg starter appen efter udgivelse med ClickOnce, får jeg at "placerings-id'et ikke stemmer overens med abonnementet"

  • Applikationens navn
  • Token for offentlig nøgle
  • Kultur
  • Processorarkitektur (f.eks. x86)

Blandt disse mener jeg, at det er uønsket at ændre "kultur" og "processorarkitektur", fordi der er mulighed for utilsigtede behandlingsresultater.

Jeg tror, at der er en måde at ændre "applikationsnavnet" på, Dybest set anbefales det ikke, fordi kun et navn kan gives til et projekt. Der er en mulighed for, at flere definitioner kan laves ved hjælp af buildkonfigurations- og betingelsesparametre i indholdet af projektfilen, Da kun en brugergrænseflade kan indstilles i Visual Studio, er det lidt farligt, fordi det kan overskrives afhængigt af operationen.

Resten er et "offentligt nøgletoken", men denne giver dig mulighed for at oprette flere certifikater, Da det kan specificeres som en parameter på tidspunktet for ClickOnce-udgivelsen, vil jeg gerne identificere applikationen med denne gang.

Procedure for kontrol af driften

Fra det tidspunkt, hvor projektet oprettes, til det punkt, hvor det er klar til at blive offentliggjort som en batchfil, er det det samme som følgende tip, så se det for proceduren indtil dette tidspunkt.

Oprettelse af et certifikat

Denne gang bekræfter vi med et testcertifikat for prøven. Oprindeligt skulle det ske med et almindeligt certifikat, men da det vil kræve en anden procedure end hovedemnet, såsom oprettelse af certifikater og forberedelse af certifikatmyndighed, vil jeg udelukke forklaringen vedrørende certifikater. I produktionen er det OK at erstatte testcertifikatfilen med produktionsfilen.

Når du har oprettet projektet og oprettet batchen til udgivelse, skal du vende tilbage til Visual Studio. Åbn projektegenskaberne, og vælg Underskriv i menuen til venstre. Der er en kontrol for "Sign the ClickOnce manifest", så tjek det.

Opret nu to certifikater. Denne gang opretter vi det på denne skærm, men ". pfx "filformat, er der ikke noget problem med at oprette certifikater på andre måder.

Der er en "Opret testcertifikat" -knap i nederste højre hjørne, så klik på den.

Du kan også sætte en adgangskode, men det fungerer, uanset om du sætter det ind eller ej. Men hvis du vil sætte et kodeord, vil proceduren være besværlig, så jeg vil ikke sætte det denne gang.

Der er genereret en certifikatfil (.pfx) til dit projekt. Filnavnet, der genereres her, er rettet, men kan ændres senere. Forresten er gyldigheden af testcertifikatet, der er oprettet her, et år. Efter et år skal du genskabe et nyt certifikat.

Følg de samme trin for at oprette en anden.

Denne gang udgiver vi i Debug-buildet og Release-buildet, så vi ændrer navnet til et klart.

Batch ændring

Åbn den batchfil, du oprettede (.bat) i en teksteditor, og føj følgende til parametrene for msbuild:

beskrivelse af parameternavn påkrævet
ManifestKeyFile Certifikatets filnavn (.pfx). Angiv en sti i forhold til eller absolut fra projektfilen.
ManifestCertificateThumbprint Manifestcertifikatets tommelfingeraftryk. Den værdi, der skal sættes i, kan være hvad som helst, men den skal sættes ind på alle måder.
Produktnavn Produktnavn. Det bliver visningsnavnet på startmenuen eller listen over programmer.
Udgivernavn Navn på offentlig virksomhed. Det bliver mappenavnet, når du organiserer programmer i startmenuen.

Baseret på ovenstående skal du ændre patchfilen som følger.

ClickOnceDebug udgiver.bat (eksempel)

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 (eksempel)

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 Hver værdi angiver en anden certifikatfil. ManifestCertificateThumbprint Værdien af kan være hvad som helst, men sørg for at medtage den, fordi applikationen ikke kan identificeres som en anden, hvis du ikke sætter den.

Forresten, da to programmer er installeret i samme miljø denne gang, er der tilføjet parametre, ProductName så de kan skelnes. PublisherName efter din smag.

spørgsmål

Efter input skal du udføre hver batchfil og udgive den.

Hvis xxxx.application er i den fil, du har udgivet, skal du åbne den i en teksteditor og sørge for, at den harpublicKeyToken en anden værdi.

installere

Når du har kopieret de offentliggjorte filer til den offentlige mappe, skal du køre for at installere dem setup.exe .

Hvis du indtaster certifikatet på udstedelsestidspunktet, vises følgende skærmbillede på installationstidspunktet. Hvis det er et testcertifikat, kan udgiveren ikke bekræftes, så installer det som det er.

Det første program blev installeret og lanceret.

Jeg vil prøve at installere den anden.

Den anden blev også installeret og lanceret.

Selvfølgelig arbejder begge på samme tid.

ProductName Da den blev vedhæftet, vises den separat i startmenuen.

Du kan også se begge dele på listen over apps.