Позволи на ClickOnce да инсталира няколко публикувани програми от един и същ проект в същата среда (.NET Framework Editions Only)

Страницата се актуализира :
Дата на създаване на страница :

Среда за проверка на операция

Визуално студио
  • Визуално студио 2022
.NET Рамка
  • .NET Рамка 4.8

Задължителни среди

рамка
  • Формуляри на Windows (.NET Framework) като цяло
  • WPF (.NET Framework) като цяло

Отначало

Този Съвети описва как да инсталирате няколко публикувани ClickOnce от един и същ проект отделно в една и съща среда.

За процедурата за публикуване на няколко копия от един и същ проект в различни конфигурации

Например дори в същия проект, ако съдържанието на обработката се променя в зависимост от конфигурацията на компилацията, може да искате да публикувате като отделна програма. Това е възможно в .NET (Core) версия, но не и в .NET Framework версия със стандартните функции на Visual Studio.

Този метод е обобщен в следните съвети с помощта на пакетна програма. Настоящият Съвети е обяснен на предпоставката, че е завършено следното съдържание.

Условия, при които ClickOnce инсталира като отделни приложения

Ако публикувате с помощта на пакетната програма, описана по-горе, конфигурацията на компилацията се променя, но и двете се третират като едно и също приложение, Ако се опитате да инсталирате две в една и съща среда, ще има конфликт и инсталирането ще се провали, дори ако се опитате да инсталирате по-късно.

Трябва да направя това да изглежда отделно приложение, но според цитираната статия следните параметри идентифицират приложението:

Препратка: (.NET) Когато стартирам приложението след публикуване с ClickOnce, получавам, че "Идентификационният номер на разполагане не съответства на абонамента"

  • Име на приложението
  • Маркер за публичен ключ
  • Култура
  • Архитектура на процесора (например x86)

Сред тях мисля, че не е желателно да се променят "културата" и "процесорната архитектура", защото има възможност за нежелани резултати от обработката.

Мисля, че има начин да промените "името на приложението", По принцип не се препоръчва, защото само едно име може да бъде дадено на един проект. Има възможност няколко дефиниции могат да бъдат направени чрез изграждане на конфигурация и състояние параметри в съдържанието на файла на проекта, Тъй като само един ПИ може да бъде зададен в Visual Studio, той е малко опасен, защото може да бъде презаписан в зависимост от операцията.

Останалото е "маркер за публичен ключ", но този ви позволява да създадете няколко сертификата, Тъй като тя може да бъде посочена като параметър по време на публикуването на ClickOnce, бих искал да идентифицирам приложението с това време.

Процедура за проверка на операцията

От точката на създаване на проекта до момента, в който е готов да публикува като пакетен файл, той е същият като следните съвети, така че моля, вижте го за процедурата до този момент.

Създаване на сертификат

Този път ще потвърдим със сертификат за изпитване за пробата. Първоначално трябва да се направи с редовно удостоверение, но тъй като ще изисква процедура, различна от основния предмет като създаване на сертификат и подготовка на орган за сертификати, ще изключа обяснението, свързано със сертификатите. В производството е OK да замените файла с тестовия сертификат с производствения файл.

След като създадете проекта и създадете партидата за публикуване, върнете се в Visual Studio. Отворете свойствата на проекта и изберете Подписване от менюто вляво. Има проверка за "Подпишете манифеста ClickOnce", така че го проверете.

Сега създайте два сертификата. Този път ще го създадем на този екран, но ". pfx" файлов формат, няма проблем със създаването на сертификати с други средства.

Има бутон "Създаване на тестов сертификат" в долния десен ъгъл, затова кликнете върху него.

Можете също така да поставите парола, но тя работи независимо дали сте я сложили или не. Въпреки това, ако искате да поставите парола, процедурата ще бъде обезпокоителен, така че няма да го сложа този път.

За вашия проект е генериран файл със сертификат (.pfx). Генерираното тук име на файл е фиксирано, но може да бъде променено по-късно. Между другото, валидността на сертификата за изпитване, създаден тук, е една година. След една година ще трябва да пресъздадете нов сертификат.

Следвайте същите стъпки, за да създадете друг.

Този път ще публикуваме в debug компилацията и компилацията release, така че ще променим името на ясен.

Партида модификация

Отворете пакетния файл, който сте създали (.bat) в текстов редактор и добавете следното към параметрите на msbuild:

необходимо описание на име на параметър
МанифестКлючов профил Името на файла (.pfx) на сертификата. Задайте път спрямо или абсолютен от файла на проекта.
МанифестСертификатТъмбпринт Отпечатъкът от палец на сертификата на манифеста. Стойността, която трябва да се вложи, може да бъде всичко, но трябва да бъде вложена с всички средства.
ПродуктИме Име на продукта. Тя се превръща в показваното име на стартовото меню или списък с програми.
Име на издателя Име на публичната фирма. Тя става името на папката при организиране на програми в стартовото меню.

Въз основа на горното модифицирайте файла с кръпката, както следва.

ClickOnceDebug публикува.bat (пример)

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"

ЩракнетеОнсРелайз проблем.bat (пример)

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 Всяка стойност задава различен файл със сертификати. ManifestCertificateThumbprint Стойността на може да бъде всичко, но не забравяйте да го включите, защото приложението не може да бъде идентифицирано като друго, ако не го поставите.

Между другото, тъй като два програми са инсталирани в една и съща среда този път, са добавени параметри, така че ProductName да могат да бъдат разграничени. PublisherName по ваш собствен избор.

Въпрос

След въвеждане изпълни всеки пакетен файл и го публикувай.

Ако xxxx.application е във файла, който сте публикували, отворете го в текстов редактор и се уверете, че имаpublicKeyToken различна стойност.

инсталирам

След като копирате публикуваните файлове в публичната папка, изпълнете, за да ги setup.exe инсталирате .

Ако въведете сертификата по време на издаването, по време на инсталирането ще се покаже следният екран. Ако е тестов сертификат, издателят не може да бъде потвърден, така че го инсталирайте такъв, какъвто е.

Първата програма е инсталирана и стартирана.

Ще опитам да инсталирам другия.

Другият също е бил инсталиран и стартиран.

Разбира се, и двете работят едновременно.

ProductName Тъй като е бил прикрепен, той се показва отделно в стартовото меню.

Можете също да видите и двете в списъка с приложения.