Permiteți ClickOnce să instaleze mai multe programe publicate din același proiect în același mediu (numai edițiile.NET Framework)

Pagina actualizată :
Data creării paginii :

Mediul de verificare a operațiunilor

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

Medii necesare

cadru
  • Formulare Windows (.NET Framework) în general
  • WPF (.NET Framework) în general

La început

Acest sfaturi descrie cum se instalează mai multe publicate ClickOnce din același proiect separat în același mediu.

Despre procedura de publicare a mai multor copii din același proiect în configurații diferite

De exemplu, chiar și în același proiect, dacă conținutul de procesare se modifică în funcție de configurația de compilare, poate doriți să publicați ca un program separat. Acest lucru este posibil în versiunea .NET (Core), dar nu în versiunea .NET Framework cu caracteristicile standard ale Visual Studio.

Această metodă este rezumată în următoarele sfaturi folosind un program de lot. Acest Sfaturi este explicat pe premisa că următorul conținut sunt finalizate.

Condiții în care ClickOnce se instalează ca aplicații separate

Dacă publicați utilizând programul de lot descris mai sus, configurația de compilare se modifică, dar ambele sunt tratate ca aceeași aplicație, Dacă încercați să instalați două în același mediu, va exista un conflict și instalarea nu va reuși chiar dacă încercați să instalați mai târziu.

Am nevoie pentru a face acest lucru par a fi o cerere separată, dar în conformitate cu articolul la care se face referire, următorii parametri identifica cererea:

Referință: (.NET) Când lansez aplicația după publicarea cu ClickOnce, înțeleg că "ID-ul de plasare nu se potrivește cu abonamentul"

  • Numele aplicației
  • Token cheie publică
  • Cultură
  • Arhitectura procesorului (de exemplu, x86)

Printre acestea, cred că nu este de dorit să se schimbe "cultura" și "arhitectura procesorului", deoarece există posibilitatea unor rezultate de procesare neintenționate.

Cred că există o modalitate de a schimba "numele aplicației", Practic, nu este recomandat, deoarece un singur nume poate fi dat unui singur nume unui singur proiect. Există posibilitatea ca mai multe definiții să poată fi făcute prin parametrii de configurare și condiție a construi în conținutul fișierului de proiect, Deoarece doar o singură interfață de utilizator poate fi setată în Visual Studio, este puțin periculos, deoarece poate fi suprascris în funcție de operație.

Restul este un "token cheie publică", dar acesta vă permite să creați mai multe certificate, Deoarece poate fi specificat ca un parametru la momentul publicării ClickOnce, aș dori să identific aplicația cu acest timp.

Procedura de verificare a operațiunilor

De la punctul de creare a proiectului până la punctul în care este gata să publice ca fișier batch, este același cu următoarele sfaturi, așa că vă rugăm să consultați-l pentru procedura de până la acel moment.

Crearea unui certificat

De data aceasta, vom confirma cu un certificat de testare pentru eșantion. Inițial, ar trebui să se facă cu un certificat obișnuit, dar din moment ce va necesita o altă procedură decât subiectul principal, cum ar fi crearea certificatului și pregătirea autorității de certificare, voi exclude explicația legată de certificate. În producție, este OK să înlocuiți fișierul certificatului de testare cu fișierul de producție.

După ce creați proiectul și creați lotul pentru publicare, reveniți la Visual Studio. Deschideți proprietățile proiectului și alegeți Semnare din meniul din stânga. Există o verificare pentru "Semnați manifestul ClickOnce", așa că verificați-l.

Acum creați două certificate. De data aceasta îl vom crea pe acest ecran, dar ". pfx" format de fișier, nu există nici o problemă cu crearea certificatelor prin alte mijloace.

Există un buton "Creați certificatul de testare" în colțul din dreapta jos, așa că faceți clic pe el.

De asemenea, puteți pune o parolă, dar funcționează indiferent dacă o puneți sau nu. Cu toate acestea, dacă doriți să puneți o parolă, procedura va fi supărătoare, așa că nu o voi pune de data aceasta.

Pentru proiectul dvs. a fost generat un fișier de certificat (.pfx). Numele fișierului generat aici este fix, dar poate fi schimbat mai târziu. Apropo, valabilitatea certificatului de testare creat aici este de un an. După un an, va trebui să recreați un nou certificat.

Urmați aceiași pași pentru a crea altul.

De data aceasta, vom publica în debug construi și de lansare construi, așa că vom schimba numele la unul clar.

Modificarea lotului

Deschideți fișierul batch pe care l-ați creat (.bat) într-un editor de text și adăugați următoarele la parametrii msbuild:

este necesară descrierea numelui parametrului
ManifestKeyFile Numele de fișier (.pfx) al certificatului. Specificați o cale relativă sau absolută din fișierul de proiect.
ManifestCertificateThumbprint Amprenta certificatului manifest. Valoarea care trebuie pusă poate fi orice, dar trebuie pusă în aplicare prin toate mijloacele.
Nume produs Numele produsului. Devine numele afișat al meniului start sau al listei de programe.
PublisherName Numele companiei publice. Devine numele folderului atunci când se organizează programe în meniul start.

Pe baza celor de mai sus, modificați fișierul de corecție după cum urmează.

ClickOnceDebug publică.bat (exemplu)

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

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 Fiecare valoare specifică un alt fișier de certificat. ManifestCertificateThumbprint Valoarea poate fi orice, dar asigurați-vă că o includeți, deoarece aplicația nu poate fi identificată ca fiind alta dacă nu o puneți.

Apropo, deoarece două programe sunt instalate în același mediu de data aceasta, au fost adăugați parametri, astfel încât ProductName să poată fi distingeți. PublisherName pe placul tău.

problemă

După intrare, executați fiecare fișier batch și publicați-l.

Dacă xxxx.application se află în fișierul pe care l-ați publicat, deschideți-l într-un editor de text și asigurați-vă că arepublicKeyToken o valoare diferită.

instala

După copierea fișierelor publicate în folderul public, executați pentru a le setup.exe instala .

Dacă introduceți certificatul în momentul emiterii, următorul ecran va fi afișat în momentul instalării. Dacă este un certificat de testare, editorul nu poate fi confirmat, așa că instalați-l așa cum este.

Primul program a fost instalat și lansat.

Voi încerca instalarea celuilalt.

Celălalt a fost, de asemenea, instalat și lansat.

Desigur, ambele lucrează în același timp.

ProductName Deoarece a fost atașat, este afișat separat în meniul start.

De asemenea, le puteți vedea pe ambele în lista de aplicații.