Развертывание настроек по умолчанию для разных клиентов - PullRequest
1 голос
/ 13 января 2010

Мой вопрос как бы связан с этим существующим вопросом

Как развернуть настольное приложение .Net с пользовательскими настройками для пользователя

Тем не менее, я понимаю идею использования настроек приложения, о которой я не могу найти информацию: как мне развернуть настройки приложения для разных клиентов?

У нас есть система пользовательских настроек, которая прекрасно работает, однако при первом запуске приложения необходимо знать несколько вещей, таких как название компании и сервер приложений. Они, очевидно, будут отличаться в зависимости от клиента.

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

В настоящее время я думаю о том, чтобы иметь своего рода файл настроек в отдельной сборке для каждого клиента. Это путь, или я пропустил какую-то нативную поддержку этой идеи «профилей клиентов»?

EDIT:

Больше информации, которая может помочь людям справиться с моим вопросом.

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

Ответы [ 3 ]

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

Если я правильно понимаю, вы хотите развернуть предварительно настроенное программное обеспечение для каждого пользователя. Вы можете использовать WIX для создания MSI-пакета для каждого клиента. Вы можете поставить несколько пользовательских настроек в своей ориентированной на клиента MSI. Вы можете динамически генерировать WIX-XML-документ на основе источника данных, в котором хранятся ваши клиенты. Это немного работы, но позже экономит много работы. Создание MSI через WIX может быть легко интегрировано в процесс сборки.

0 голосов
/ 01 июня 2010

Учитывая, что это корпоративная среда, вы рассматривали возможность использования ClickOnce? Мы имели успех в основном с аргументами запуска, например, http://servername/OurApp.application?environment=uat

Это не всегда масштабируется, но вы можете передавать аргументы, используя переменные GET и анализируя результирующую строку QueryString при доставке по HTTP - http://msdn.microsoft.com/en-us/library/ms172242.aspx

Вы можете передать параметры в QueryString или создать их в базе данных, сгенерировать (хэшированный?) Ключ и создать QueryString, уникальную для этой ссылки (с дополнительным преимуществом, которое любознательный пользователь не сможет манипулировать URI и подделать другой набор параметров).

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

Многие приложения запрашивают некоторые начальные настройки при первом запуске (Microsoft Office, Visual Studio и т. Д.). Так что это поведение обычно известно пользователю.

Возможно, проблема в том, что эти первоначальные настройки восстанавливают обновление вашего приложения. Для этого вы можете сохранить ваши данные в независимом от версии пути в реестре или где-то ниже% AppData%.

Также было бы полезно предварительно заполнить эти диалоговые окна при первом запуске, получая эту информацию где-то вне машины (например, название компании можно получить из реестра [HKLM \ Software \ Microsoft \ WindowsNT \ CurrentVersion \ RegisteredOrganization] или Сервер приложений берет адрес шлюза, сервер AD, что наиболее часто совпадает).

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


Обновление:

Так что, если пользователь не знает путь к Серверу приложений. Кто это делает? Где находится эта информация? Возможно, вы сможете заставить своих клиентов предоставлять эту информацию одинаково. Может быть, они установили некоторую переменную среды в сценарии входа или поместили файл с необходимой информацией в глобально доступное место (например, где находится сценарий входа).

...