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

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

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

активация ...MyClickOnceApp.применение результате в исключениях. После неудачи обнаружены сообщения:

+ скачивание файл: / / oldMachine/c$ / MyClickOnceApp.применение не удалось.

+ не удалось найти часть пути ' oldMachinec$MyClickOnceApp.заявление".

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

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

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

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

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

4 ответов


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

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

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

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

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

REM установить окружающую среду
звоните "C:\Program файлы\Microsoft Visual Studio 9.0\VC\vcvarsall.летучая мышь"

REM обновить URL-адрес поставщика развертывания
маг -обновление %1.применение-pu %2

REM подписать манифест с нашим ключом
маг -знак %1.приложение-CertFile C:\AppKey - ... pfx-файл -пароль myPw

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


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

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

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

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


Я ожидал бы сделать следующее:

  • скопировать содержимое папки в новое местоположение
  • для каждого приложения:-
    • изменить "папку установки" на новое место
    • опубликовать в новой версии
    • изменить в новом месте
  • опубликовать в новой версии

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

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

Edit:

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


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