Найдите исходное местоположение установщика exe на диске из установщика C#

У меня есть установщик MSI с aC# настраиваемым действием, выполняющимся в конце, который выполняет сценарий sql до выхода из установщика. Мы решили, что лучший способ сделать это - поместить файл сценария sql в тот же каталог, что и файл MSI, и загрузить его таким образом.

Проблема в том, что установщик копирует себя в Windows\system32, а затем выполняет оттуда, поэтому я не могу найти исходный каталог для выполнения файла сценария. Любая помощь или идеи будут оценены!

2 ответа

Решение

Есть ли OriginalDatabase Вам поможет недвижимость?

Установщик Windows устанавливает для свойства OriginalDatabase путь к базе данных установки, используемой для запуска установки. Если установка запускается из командной строки, значение зависит от того, присутствует ли параметр пакета recache (флаг -v) в свойстве REINSTALLMODE.

Если вы пишете управляемые настраиваемые действия в C#, вы должны использовать установщик Windows (WiX) Deployment Tools Foundation (DTF). Вы можете создать проект на C# и добавить свой файл SQL в качестве содержимого проекта, и он будет упакован для поездки и будет доступен в текущем каталоге во время выполнения.

Кстати, предполагая (или нет), что вы используете MSSQL, WiX уже имеет обработку выполнения SQL-скриптов.

Другие вопросы по тегам