Leisti "ClickOnce" įdiegti kelias publikuotas programas iš to paties projekto toje pačioje aplinkoje (tik ".NET Framework Editions")

Puslapis atnaujintas :
Puslapio sukūrimo data :

Veikimo tikrinimo aplinka

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

Reikalingos aplinkos

Sistema
  • "Windows" formos (.NET Framework) apskritai
  • WPF (.NET Framework) apskritai

Iš pradžių

Šiame patarime aprašoma, kaip toje pačioje aplinkoje atskirai įdiegti kelis publikuotus clickOnce iš to paties projekto.

Apie kelių kopijų publikavimo iš to paties projekto skirtingomis konfigūracijomis procedūrą

Pavyzdžiui, net ir tame pačiame projekte, jei apdorojimo turinys keičiamas atsižvelgiant į kūrimo konfigūraciją, galbūt norėsite publikuoti kaip atskirą programą. Tai įmanoma .NET (Core) versijoje, bet ne ".NET Framework" versijoje su standartinėmis "Visual Studio" funkcijomis.

Šis metodas apibendrintas šiuose patarimuose naudojant paketinę programą. Šis patarimas paaiškinamas darant prielaidą, kad toliau pateiktas turinys yra baigtas.

Sąlygos, kuriomis ClickOnce įdiegiamos kaip atskiros programos

Jei publikuojate naudodami anksčiau aprašytą paketinę programą, versijos konfigūracija pakeičiama, tačiau abi jos laikomos ta pačia programa, Jei bandysite įdiegti du toje pačioje aplinkoje, kils konfliktas, o diegimas nepavyks, net jei bandysite įdiegti vėliau.

Turiu padaryti, kad tai atrodytų atskira programa, tačiau pagal nurodytą straipsnį programą identifikuoja šie parametrai:

Nuoroda: (.NET) Kai paleidžiu programą po paskelbimo su "ClickOnce", gaunu, kad "paskirties vietos ID neatitinka prenumeratos"

  • Programos pavadinimas
  • Viešojo rakto žetonas
  • Kultūra
  • Procesoriaus architektūra (pvz., x86)

Tarp jų, manau, nepageidautina keisti "kultūrą" ir "procesoriaus architektūrą", nes yra galimybė nenumatytiems apdorojimo rezultatams.

Manau, kad yra būdas pakeisti "paraiškos pavadinimą", Iš esmės tai nerekomenduojama, nes vienam projektui galima suteikti tik vieną pavadinimą. Yra tikimybė, kad kuriant konfigūracijos ir būklės parametrus projekto failo turinyje galima atlikti kelis apibrėžimus, Kadangi "Visual Studio" galima nustatyti tik vieną vartotojo sąsają, ji yra šiek tiek pavojinga, nes ji gali būti perrašyta priklausomai nuo operacijos.

Likusi dalis yra "viešojo rakto žetonas", tačiau šis leidžia sukurti kelis sertifikatus, Kadangi "ClickOnce" publikavimo metu jis gali būti nurodytas kaip parametras, norėčiau su šiuo laiku identifikuoti programą.

Veikimo tikrinimo procedūra

Nuo projekto sukūrimo iki taško, kai jis yra paruoštas publikuoti kaip paketinį failą, jis yra toks pat, kaip ir šie patarimai, todėl prašome kreiptis į jį dėl procedūros iki to momento.

Sertifikato kūrimas

Šį kartą patvirtinsime mėginio bandymo sertifikatu. Iš pradžių tai turėtų būti daroma naudojant įprastą sertifikatą, tačiau kadangi tam reikės ne pagrindinio dalyko, o kitos procedūros, pvz., pažymėjimo sukūrimo ir sertifikavimo institucijos parengimo, neįtrauksiu paaiškinimo, susijusio su sertifikatais. Gamyboje gerai pakeisti bandymo sertifikato failą gamybos failu.

Sukūrę projektą ir sukūrę publikavimo paketą, grįžkite į "Visual Studio". Atidarykite projekto ypatybes ir kairėje esančiame meniu pasirinkite Pasirašyti. Yra čekis "Pasirašyti ClickOnce manifestą", todėl patikrinkite.

Dabar sukurkite du sertifikatus. Šį kartą mes jį sukursime šiame ekrane, bet ". pfx" failo formatas, nėra jokių problemų kuriant sertifikatus kitomis priemonėmis.

Apatiniame dešiniajame kampe yra mygtukas "Sukurti bandymo sertifikatą", todėl spustelėkite jį.

Taip pat galite įdėti slaptažodį, bet jis veikia, nesvarbu, ar jį įdedate, ar ne. Tačiau jei norite įdėti slaptažodį, procedūra bus varginanti, todėl šį kartą jo nedėsiu.

Jūsų projektui buvo sugeneruotas sertifikato (.pfx) failas. Čia sugeneruotas failo vardas yra fiksuotas, bet vėliau gali būti pakeistas. Beje, čia sukurto testo sertifikato galiojimas yra vieneri metai. Po vienerių metų turėsite atkurti naują sertifikatą.

Atlikite tuos pačius veiksmus, kad sukurtumėte kitą.

Šį kartą paskelbsime "Debug" versijoje ir "Release build", todėl pakeisime pavadinimą į aiškų.

Partijos modifikavimas

Atidarykite sukurtą paketinį failą (.bat) teksto rengyklėje ir prie msbuild parametrų pridėkite:

reikalingas parametro pavadinimo aprašas
ManifestKeyFile Sertifikato failo pavadinimas (.pfx). Nurodykite kelią, susijusį su projekto failu arba jo absoliutų.
ManifestCertificateThumbprint Manifesto sertifikato nykščio atspaudas. Vertė, kurią reikia įdėti, gali būti bet kokia, bet ji turi būti įdėta visomis priemonėmis.
Produkto pavadinimas Produkto pavadinimas. Jis tampa rodomu pradžios meniu arba programų sąrašo pavadinimu.
PublisherName Akcinės bendrovės pavadinimas. Jis tampa aplanko pavadinimu organizuojant programas pradžios meniu.

Remdamiesi tuo, kas išdėstyta pirmiau, pakeiskite pataisos failą taip.

ClickOnceDebug publikuoja.bat (pavyzdys)

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 problema.bat (pavyzdys)

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 Kiekviena reikšmė nurodo skirtingą sertifikato rinkmeną. ManifestCertificateThumbprint Vertė gali būti bet kokia, bet būtinai įtraukite ją, nes programa negali būti identifikuota kaip kita, jei jos neįdėsite.

Beje, kadangi šį kartą toje pačioje aplinkoje įdiegtos dvi programos, buvo pridėti parametrai, kad ProductName juos būtų galima atskirti. PublisherName pagal tavo skonį.

išduoti

Po įvesties vykdykite kiekvieną paketinį failą ir paskelbkite jį.

Jei xxxx.application yra publikuotame faile, atidarykite jį teksto rengyklėje ir įsitikinkite, kad jis turipublicKeyToken kitą reikšmę.

diegti

Nukopijavę paskelbtus failus į viešąjį aplanką, paleiskite, kad juos setup.exe įdiegtumėte .

Jei sertifikato išdavimo metu įvesite, diegimo metu bus rodomas šis ekranas. Jei tai yra bandomasis sertifikatas, leidėjo negalima patvirtinti, todėl įdiekite jį tokį, koks jis yra.

Pirmoji programa buvo įdiegta ir paleista.

Pabandysiu įdiegti kitą.

Kitas taip pat buvo sumontuotas ir paleistas.

Žinoma, abu dirba tuo pačiu metu.

ProductName Kadangi jis buvo pridėtas, pradžios meniu jis rodomas atskirai.

Taip pat galite matyti abu programų sąraše.