2015-09-08 7 views
1

Я создал исполняемый файл Windows для распространения. Я создал установщик, используя Inno Setup. Все работает, но теперь, кроме того, я хотел бы позволить человеку, устанавливающему программное обеспечение, вводить URL или URI файла конфигурации, которые мое приложение будет использовать для получения различных данных инициализации, которые будут зависеть от сайта. Поскольку приложение будет использоваться во многих местах на каждом сайте, в идеале, установка человека будет вводить путь к файлу конфигурации один раз, во время установки; то приложение сохранит местоположение файла конфигурации. Есть ли стандартный способ установки установщика добавить ресурс (т. Е. Путь к файлу конфигурации) в .exe, который он устанавливает? Спасибо за любой совет.Изменение .exe во время установки

В качестве примера: каждый сайт будет иметь сервер, который мое программное обеспечение будет использовать для получения информации в режиме реального времени; серверы будут за брандмауэром каждого сайта, следовательно, это инициализация на каждом сайте. Таким образом, поскольку программное обеспечение установлено на каждой рабочей станции на сайте, ИТ-персонал должен будет указать URL-адрес, который будет использовать мое программное обеспечение на этом сайте. Каждая рабочая станция могла хранить этот URL-адрес сайта в реестре, как предложил один человек. Мне было интересно, есть ли другие возможности, которые лучше, чем использование реестра (например, динамическое создание строкового ресурса в исполняемом файле) или реестр - лучший способ продвижения вперед. Я хотел бы сделать установку настолько безболезненной, насколько это возможно, поэтому я думал, что установщик, который использует файл конфигурации или командную строку для предоставления URL-адреса, был бы лучше.

+0

Вы посмотрели руководство? Обычно он сохраняется в реестре. –

+0

Я знаком с руководством, я просто пытаюсь определить, было бы лучше использовать строковый ресурс или другой метод (например, запись в реестре, как вам было предложено). Благодаря! – ehh

+0

Если приложение будет использоваться из нескольких мест, то, очевидно, реестр не будет хорошим решением. Вы также не изменяете exe, который вы устанавливаете. – slugster

ответ

1

Есть ли стандартный способ установки установщика добавить ресурс (то есть путь к файлу конфигурации) в .exe, который он устанавливает?

Да, существуют способы добавления или изменения ресурсов исполняемого файла, например. с ResourceHacker и аналогичными инструментами. Но я бы не назвал этот стандарт каким-либо образом, потому что он усложняется, например. когда ваш исполняемый файл установщика подписан. Не делайте этого - особенно не для вставки директив конфигурации.

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

Я создал исполняемый файл Windows для распространения. Я создал установщик, используя Inno Setup.

Это означает, что вы можете изменять и перекомпилировать исполняемый файл приложения и установщика.

Что я предлагаю здесь работать немного больше на стороне конфигурации приложения:

  • изменить приложение для чтения файла конфигурации во время начальной загрузки, например, application.ini
  • если файл конфигурации не существует, создайте его с настройками по умолчанию на начальной загрузки
  • добавить директиву конфигурации «LocalConfigurationUrl» с пустым значением
  • добавить диалог, который всплывает, когда «LocalConfigurationUrl» является пусто, запрашивая URL-адрес и записывая его в конфигурацию

Когда вы реализуете его таким образом, ваше приложение запрашивает путь к URL-адресу конфигурации при первом запуске.

В идеале, установка человека будет вводить путь к файлу конфигурации один раз, во время установки; то приложение будет хранить местоположение файла конфигурации

Теперь для того, чтобы избежать применения с просьбой при запуске для конфигурации, вы можете изменить свой InnoSetup сценарий, чтобы попросить LocalConfigurationURL во время установки и написать Application.ini к папке приложения. (= application.ini с конфигурацией по умолчанию + LocalConfigurationUrl со значением.)

Вы дублируете функциональность (форму, запрашивающую URL-адрес), но вы настраиваете предварительную настройку приложения, так что приложение заканчивается -box с минимальным потреблением взаимодействия при первом запуске.

+0

Кажется, что этот подход будет работать с параметром диалога или командной строки для установщика; Кроме того, он может записываться в реестр или в файл .ini. Благодаря! – ehh

Смежные вопросы