Развертывание ClickOnce и изменение файла конфигурации после установки - PullRequest
7 голосов
/ 11 января 2010

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

Приложение имеет некоторые настройки в файле конфигурации.У каждого клиента будут свои настройки (все пользователи под клиентом будут использовать одинаковые настройки).Насколько я понимаю, после создания пакета ClickOnce клиенты не могут изменять файл конфигурации, чтобы установить свои собственные параметры, или необходимо повторно подписать ClickOnce.

Правильно ли мое понимание?Есть ли обходной путь?Может ли приложение получить доступ к местоположению обновления для файлов, не включенных в манифест ClickOnce?

Ответы [ 4 ]

3 голосов
/ 12 января 2010

Если вы ориентируетесь на 3.5 Framework, вам не нужно подписывать ваши развертывания ClickOnce. Убедитесь, что «Подписать манифесты ClickOnce» не отмечены на вкладке «Подписать» в свойствах вашего проекта. Это позволит вам редактировать файл .application после создания развертывания. Измените атрибут кодовой базы тега deployProvider ...
<deploymentProvider codebase="http://theirserver/.../Foo.application" />

Это не решит проблему настройки приложения. Если вы редактируете файл, который вы развертываете, хэш для файла должен быть восстановлен.

Знаете ли вы, какой должна быть настройка клиента? Если это так, может быть, вы могли бы иметь отдельные файлы конфигурации для каждого клиента и сделать что-то с событием перед сборкой, чтобы скопировать файлы конфигурации вокруг?

Имеет ли параметр значение в файле конфигурации клиента? Не могли бы вы сохранить настройки на сервере и передать их через параметр url или получить их с помощью вызова веб-службы после запуска приложения?

Если эти вещи не сработают, вы можете предоставить своим клиентам простой сценарий (возможно, с использованием Mage ), чтобы они могли заново создавать и оставлять подписи под манифестами (с собственным сертификатом) после редактирования развертывания .

1 голос
/ 01 февраля 2010

Вы можете найти мою недавнюю публикацию в блоге MSBuild и Multiple environment полезной Учтите, что у каждого из ваших клиентов может быть своя «среда», позволяющая вам указать их различные конфигурации индивидуально.

Если бы вы использовали этот подход, вы все равно могли бы "подписать" развертывание.

Удачи!

1 голос
/ 12 января 2010

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

0 голосов
/ 12 января 2010

Еще один не очень хорошее решение :

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

...