Создание инсталлятора

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

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


Вопрос был в том, как перед началом инсталляции запустить мою программу
Для использования Installer необходимо выполнить следующие шаги: Унаследовать класс Installer.Переопределить методы Install, Commit, Rollback и Uninstall.Добавить RunInstallerAttribute в порожденный класс и установить его в значение true.Поместить порожденный класс в сборку с устанавливаемым приложением.Запустить установщики. Например, для запуска установщиков можно использовать InstallUtil.exe.Свойство Installers содержит коллекцию установщиков. Если данный экземпляр Installer является частью коллекции установщиков, свойство Parent установлено на экземпляр Installer, содержащий коллекцию. Пример использования коллекции Installers см. в описании класса *****************.Методы 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, а также о командной строке, введенной при запуске исполняемого кода установки.
Вот в этом нужно разобраться!