четверг, 2 октября 2008 г.

ClickOnce и dotNet Framework 3.5 SP1

А напишу как я маленькую техническую заметочку.
  • Описание проблемы
  • Используем мы в работе для развёртывания проекта новомодную (и как показывает практика очень сырую) технология ClickOnce deployment. На днях после установки обновления Visual Studio 2008 SP1 и dotNet Framework 3.5 SP1 в очередной раз отвалился ClickOnce (в прошлый раз он отвалился при переходе с VS 2005 на VS 2008, восстанавливал работоспособность тогда я около месяца :(). Проявлялось это следующим образом: публикую я проект без изменения каких либо настроек и все - на клиентских машинах обновления не проходят, при старте сетапа падение с ошибкой отсутствия подписи в манифесте развертывания.

  • Установка причин возникновения проблемы
  • Первое что приходит в голову добавить в Prerequisites модуль dotNet Framework 3.5 SP1 для установки его на клиенте. Не помогло - Bootstrapper пакет для dotNet Framework 3.5 SP1 битый. Пробуем играть параметрами публикации проекта - тоже не помогает. После n часов экспериментов решаю установить на клиенте вручную dotNet Framework 3.5 SP1 и после попробовать запустить инсталляцию проекта. Вуаля все проходит на ура. То есть причина всех проблем, то что на машине, где делалась публикация установлен dotNet Framework 3.5 SP1, а на клиенте в момент запуска инсталлятора нет. Интересно кто мудак: я или M$?

  • Поиск решения
  • После продолжительных поисков выяснилось, что формально в общем-то я :) http://download.microsoft.com/download/A/2/8/A2807F78-C861-4B66-9B31-9205C3F22252/VS2008SP1Readme.htm#General%20Issues Ридмишки читать нужно. Вобщем для устранения проблемы надо добавить Prerequisites модуль dotNet Framework 3.5 SP1, но для этого надо поправить Bootstrapper пакет для dotNet Framework 3.5 SP1 выполнив все шаги из документа по ссылке. Выполнив эти действия мы получаем инсталлятор, который сначала проверяет наличие на клиенте dotNet Framework 3.5 SP1, если его нет, то устанавливает и дальше устанавливает приложение.

Комментариев нет: