Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание инсталлятора 
:(
    Опции темы
vlsaf
Дата 27.3.2009, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 423
Регистрация: 9.5.2007

Репутация: нет
Всего: 1



Народ, привет.

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

Как это делается?
PM   Вверх
Idsa
Дата 27.3.2009, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



Цитата(vlsaf @  27.3.2009,  17:58 Найти цитируемый пост)
Как это делается? 

Самый очевидный вариант - хранить информацию о предыдущей инсталляции в реестре.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
vlsaf
Дата 27.3.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 423
Регистрация: 9.5.2007

Репутация: нет
Всего: 1



Вопрос был в том, как перед началом инсталляции запустить мою программу

Цитата

Для использования Installer необходимо выполнить следующие шаги: 

Унаследовать класс Installer.

Переопределить методы Install, Commit, Rollback и Uninstall.

Добавить RunInstallerAttribute в порожденный класс и установить его в значение true.

Поместить порожденный класс в сборку с устанавливаемым приложением.

Запустить установщики. Например, для запуска установщиков можно использовать InstallUtil.exe.

Свойство Installers содержит коллекцию установщиков. Если данный экземпляр Installer является частью коллекции установщиков, свойство Parent установлено на экземпляр Installer, содержащий коллекцию. Пример использования коллекции Installers см. в описании класса AssemblyInstaller.

Методы Install, Commit, Rollback и Uninstall класса Installer вызывают соответствующий метод каждого из установщиков коллекции, содержащейся в свойстве Installers.

Методы Install, Commit, Rollback и Uninstall не всегда вызываются для одного и того же экземпляра Installer. Например, один экземпляр Installer может быть использован для установки и фиксации приложения, а затем ссылка на этот экземпляр освобождается. Позже, при отмене установки программы, создается ссылка на новый экземпляр Installer. Это означает, что метод Uninstall вызывается другим экземпляром класса Installer. По этой причине в порожденном классе не следует сохранять состояние компьютера в установщике. Используйте для этого IDictionary, сохраняющий свое значение и передаваемый в методы Install, Commit, Rollback и Uninstall.

Необходимость сохранения сведений в средстве сохранения состояния IDictionary иллюстрируется двумя ситуациями. Во-первых, предположим, что ваш установщик задает значение ключа реестра. Исходное значение ключа должно быть сохранено в IDictionary. Если осуществляется откат установки, исходное значение может быть восстановлено. Во-вторых, предположим, что установщик заменяет существующий файл. Сохраните существующий файл во временном каталоге, а новое расположение файла — в IDictionary. Если осуществляется откат установки, новый файл будет удален и заменен исходным файлом из временного каталога.

Свойство Installer.Context содержит сведения об установке. Например, сведения о расположении файла журнала установки и файла для хранения сведений, которые необходимы методу Uninstall, а также о командной строке, введенной при запуске исполняемого кода установки.



Вот в этом нужно разобраться!

Это сообщение отредактировал(а) vlsaf - 27.3.2009, 16:35
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0405 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.