Как переместить пакет развертывания ClickOnce

StackOverflow https://stackoverflow.com/questions/174764

  •  05-07-2019
  •  | 
  •  

Вопрос

У меня есть коллекция пакетов ClickOnce в папке публикации на сетевом диске, и мне нужно переместить их все на другой сервер (наш DR-компьютер).

После копирования / вставки всего каталога и запуска настроек на новом компьютере я получаю сообщение об ошибке, в котором говорится, что он не может найти старый путь:

Активация ...MyClickOnceApp.применение привело к исключению.Следующий сбой сообщения были обнаружены:

Загрузка файла://oldMachine/c$/MyClickOnceApp.application не увенчалась успехом.

+ Не удалось найти часть пути '\\oldMachine\c$\MyClickOnceApp.application'.

Как только я изменю установку URL- АДРЕС чтобы указать на мою новую машину, я получаю еще одну ошибку:

XML-подпись манифеста недопустима.

+ Цифровая подпись объекта не проверялась.

Я пробовал использовать MageUI.exe, чтобы изменить URL-адрес развертывания, но он запрашивает сертификат, которого у меня нет.

Что я делаю не так и как мне успешно переместить опубликованные пакеты ClickOnce?

Это было полезно?

Решение

Я нашел решение:

Во-первых, используя MageUI, я изменил " Начальное местоположение " в разделе «Параметры развертывания». При сохранении это побудило меня подписать ключ, который я тут же создал. Затем я запустил файл setup.exe , и он работал без сбоев.

После проверки, какие файлы были изменены, я понял, что это был только один файл: файл манифеста приложения ( myAppName.application ). В этом файле изменились только поставщик развертывания и подпись (это то, что я изменил в MageUI).

Как только я понял, что это именно так, я использовал версию MageUI для командной строки под названием Mage.exe , которая входит в комплект SDK.

Ниже приведен командный файл, который я создал для выполнения всего этого в командной строке:

  

REM Установить среду
  вызвать " C: \ Program Files \ Microsoft Visual Studio 9.0 \ VC \ vcvarsall.bat "

     

REM Обновление URL-адреса поставщика развертывания
  mage -Update% 1.application -pu% 2

     

REM Подпишите манифест нашим ключом
  mage -Sign% 1.application -CertFile C: \ AppKey.pfx -Password myPw

Теперь я могу использовать это для быстрого и простого запуска всех моих опубликованных приложений. Надеюсь, это поможет.

Другие советы

Не вдаваясь в подробности, это поможет вам.

В целях безопасности манифесты ClickOnce должны быть подписаны сертификатом. Вы можете приобрести сертификат подписи кода или создать тестовый сертификат. Основным недостатком тестового сертификата является то, что ваш издатель приложения будет отображаться как " Неизвестно " а не название вашей компании.

В Visual Studio откройте свойства своего проекта и перейдите в раздел «Подписание». на вкладке выберите «Подписать манифесты ClickOnce» и «Создать тестовый сертификат». Затем нажмите кнопку «Подробнее» чтобы открыть диалоговое окно и нажмите «Установить сертификат». Это проведет вас через мастера, чтобы получить ваш тестовый сертификат в вашем магазине. Убедитесь, что вы указали его в разделе " Личное " магазин.

Теперь вы можете использовать MageUI для редактирования ваших манифестов. Каждый раз, когда вы сохраняете файл, вам будет предложено подписать манифесты, но теперь вы сможете выбрать только что сохраненный тестовый сертификат. Всегда редактируйте / подписывайте манифест приложения перед редактированием / подписанием манифеста развертывания. Это сбивает с толку, поскольку манифест приложения не является файлом с расширением .application .

Удачи!

Я бы ожидал, что мне придется сделать следующее:

  • Скопируйте содержимое текущей папки в новое расположение
  • Для каждого приложения:-
    • Измените "Папку установки" на новое местоположение
    • Опубликовать как новую версию
    • Измените "Папку публикации" на новое местоположение
    • Опубликовать как новую версию

Новые настройки, запускаемые из новой папки, должны работать, а существующие должны обновиться, чтобы выглядеть в нужном месте.

Все это непроверено, но я почти уверен, что именно это я делал ранее...

Редактировать:

Очевидно, что вам придется запускать их параллельно в течение определенного периода времени, но поскольку это внутреннее приложение, худшее, что произойдет, когда вы, наконец, переключитесь на новое местоположение, - это то, что вам придется сообщить пользователю о новом местоположении, чтобы получить "исправленное" приложение

Я считаю, что у вас есть сертификат. Вам нужен один для создания развертывания ClickOnce. Visual Studio может автоматически создать самоподписанный для вас. Я не слишком знаком с этим процессом, надеюсь, кто-то с более определенным ответом примет участие. Кроме того, вы пробовали использовать инструмент MageUI, возможно, будет более очевидно, что вам нужно делать с помощью графического интерфейса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top