Permetre a ClickOnce instal·lar diversos programes publicats des del mateix projecte en el mateix entorn (només .NET Framework Editions)

Pàgina actualitzada :
Data de creació de la pàgina :

Entorn de comprovació de l'operació

Estudi Visual
  • Visual Studio 2022
Marc .NET
  • .NET Framework 04/08

Entorns necessaris

marc
  • Formularis de Windows (.NET Framework) en general
  • WPF (.NET Framework) en general

Al principi

Aquest Consell descriu com instal·lar diversos ClickOnce publicats des del mateix projecte per separat en el mateix entorn.

Sobre el procediment per a la publicació de múltiples còpies d'un mateix projecte en diferents configuracions

Per exemple, fins i tot en el mateix projecte, si els continguts de processament es canvien en funció de la configuració de compilació, és possible que vulgueu publicar-lo com a programa independent. Això és possible a la versió .NET (Core), però no a la versió .NET Framework amb les característiques estàndard de Visual Studio.

Aquest mètode es resumeix en els següents consells mitjançant un programa per lots. Aquest Consells s'explica sota la premissa que es completen els següents continguts.

Condicions sota les quals ClickOnce s'instal·la com a aplicacions separades

Si publiqueu mitjançant el programa per lots descrit anteriorment, la configuració de compilació es canvia, però tots dos es tracten com la mateixa aplicació, Si intenteu instal·lar-ne dos al mateix entorn, hi haurà un conflicte i la instal·lació fallarà fins i tot si intenteu instal·lar-los més tard.

He de fer que aquesta sembli una aplicació separada, però segons l'article referenciat, els següents paràmetres identifiquen l'aplicació:

Referència: (.NET) Quan inicio l'aplicació després de publicar-la amb ClickOnce, obtinc que "l'identificador d'ubicació no coincideix amb la subscripció"

  • Nom de l'aplicació
  • Testimoni de clau pública
  • Cultura
  • Arquitectura del processador (per exemple, x86)

Entre aquests, crec que no és desitjable canviar la "cultura" i l'"arquitectura del processador" perquè hi ha la possibilitat de resultats de processament no desitjats.

Crec que hi ha una manera de canviar el "nom de l'aplicació", Bàsicament, no és recomanable perquè només es pot donar un nom a un projecte. Hi ha la possibilitat que es puguin fer múltiples definicions mitjançant paràmetres de configuració i condició de compilació en el contingut del fitxer de projecte, Com que només es pot configurar una interfície d'usuari a Visual Studio, és una mica perillós perquè es pot sobreescriure en funció de l'operació.

La resta és un "testimoni de clau pública", però aquest us permet crear diversos certificats, Atès que es pot especificar com a paràmetre en el moment de la publicació de ClickOnce, m'agradaria identificar l'aplicació amb aquest temps.

Procediment de comprovació de l'operació

Des del punt de creació del projecte fins al punt en què està llest per publicar-se com a fitxer per lots, és el mateix que els següents consells, així que consulteu-lo per al procediment fins a aquest moment.

Creació d'un certificat

Aquesta vegada, ho confirmarem amb un certificat de prova de la mostra. Originalment, s'havia de fer amb un certificat regular, però com que requerirà un tràmit diferent del tema principal com és la creació de certificats i la preparació de l'autoritat de certificació, exclouré l'explicació relacionada amb els certificats. En producció, es pot substituir el fitxer de certificat de prova pel fitxer de producció.

Després de crear el projecte i crear el lot per publicar-lo, torneu a Visual Studio. Obriu les propietats del projecte i trieu Signa al menú de l'esquerra. Hi ha una comprovació de "Signa el manifest ClickOnce" així que comprova-ho.

Ara creeu dos certificats. Aquesta vegada el crearem en aquesta pantalla, però ". pfx" format de fitxer, no hi ha cap problema amb la creació de certificats per altres mitjans.

Hi ha un botó "Crea un certificat de prova" a l'extrem inferior dret, així que feu-hi clic.

També podeu posar una contrasenya, però funciona tant si la poseu com si no. Tanmateix, si voleu posar una contrasenya, el procediment serà problemàtic, de manera que no la posaré aquesta vegada.

S'ha generat un fitxer de certificat (.pfx) per al vostre projecte. El nom del fitxer generat aquí s'ha corregit, però es pot canviar més endavant. Per cert, la validesa del certificat de prova creat aquí és d'un any. Al cap d'un any, haureu de tornar a crear un nou certificat.

Seguiu els mateixos passos per crear-ne un altre.

Aquesta vegada, publicarem a la compilació Debug i a la compilació Release, de manera que canviarem el nom per un de clar.

Modificació de lots

Obriu el fitxer per lots que heu creat (.bat) en un editor de text i afegiu el següent als paràmetres de msbuild:

necessària
descripció del nom del paràmetre
ManifestKeyFile El nom del fitxer (.pfx) del certificat. Especifiqueu un camí relatiu o absolut des del fitxer de projecte.
ManifestCertificatThumbprint El polze del certificat manifest. El valor que s'ha de posar pot ser qualsevol cosa, però s'ha de posar per tots els mitjans.
Nom del producte Nom del producte. Es converteix en el nom de visualització del menú d'inici o llista de programes.
Nom de l'editor Nom de l'empresa pública. Es converteix en el nom de la carpeta quan s'organitzen programes al menú d'inici.

Basant-vos en l'anterior, modifiqueu el fitxer del pedaç de la manera següent.

ClickOnceDebug publica.bat (exemple)

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 Issue.bat (Exemple)

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 Cada valor especifica un fitxer de certificat diferent. ManifestCertificateThumbprint El valor de pot ser qualsevol cosa, però assegureu-vos d'incloure'l perquè l'aplicació no es pot identificar com una altra si no la poseu.

Per cert, com que ProductName aquesta vegada s'instal·len dos programes en el mateix entorn, s'han afegit paràmetres perquè es puguin distingir. PublisherName al seu gust.

assumpte

Després de l'entrada, executeu cada fitxer per lots i publiqueu-lo.

Si xxxx.application es troba al fitxer que heu publicat, obriu-lo en un editor de text i assegureu-vos que tinguipublicKeyToken un valor diferent.

instal·lar

Després de copiar els fitxers publicats a la carpeta pública, executeu per instal·lar-los setup.exe .

Si introdueix el certificat en el moment de l'emissió, en el moment de la instal·lació es mostrarà la següent pantalla. Si es tracta d'un certificat de prova, no es pot confirmar l'editor, així que instal·leu-lo tal com és.

El primer programa es va instal·lar i llançar.

Intentaré instal·lar l'altre.

L'altre també es va instal·lar i llançar.

Per descomptat, tots dos treballen alhora.

ProductName Com que es va adjuntar, es mostra per separat al menú d'inici.

També podeu veure-les totes dues a la llista d'aplicacions.