Как переместить пакет развертывания ClickOnce - PullRequest
10 голосов
/ 06 октября 2008

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

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

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

+ Загрузка файла: //oldMachine/c$/MyClickOnceApp.application не удалась.

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

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

Манифест XML-подписи недействителен.

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

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

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

Ответы [ 4 ]

10 голосов
/ 07 октября 2008

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

Во-первых, используя 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

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

8 голосов
/ 06 октября 2008

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

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

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

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

Удачи!

3 голосов
/ 06 октября 2008

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

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

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

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

Edit:

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

1 голос
/ 06 октября 2008

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

...