Получение местоположения setup.exe в настраиваемом действии

StackOverflow https://stackoverflow.com/questions/762834

  •  11-09-2019
  •  | 
  •  

Вопрос

С# 2005

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

Поэтому, когда пользователь дважды щелкает настройку, в той же папке появится файл config.xml.Я хотел бы прочитать этот файл config.xml при событии установки.Папка будет содержать setup.exe и config.xml.

Однако он не может найти файл config.xml, поскольку ищет его в папке C:\windows\system32.Я узнал об этом, используя applicationstartup.path.Однако папка установки, содержащая файлы setup и config.xml, находится на моем рабочем столе.

Я думал, он будет искать его в текущем местоположении.Это будет папка установки.

Сложность в том, что моя папка установки будет загружена из Интернета и любой пользователь сможет скачать ее и разархивировать в любое место на своем компьютере.

Вот мой фрагмент кода для события установки.

Большое спасибо за любой совет

protected override void OnAfterInstall(System.Collections.IDictionary savedState)
    {
        DataTable dt = new DataTable();
        MessageBox.Show(Application.StartupPath.ToString());
        dt.ReadXml("config.xml");

        MessageBox.Show(base.Context.Parameters["CAT_TargetDir"].ToString());
    } 
Это было полезно?

Решение 3

Мне удалось это решить.

Ответом было просто написать простой bat-файл, который сделает всю работу за меня.Затем bat-файл вызовет программу установки и установит приложение.

Спасибо,

Другие советы

Если предположить, что вы говорите о MSI, разве это не Исходная база данных свойство?

Предположим, вы не опечатываете CAT_TargetDir вместо TARGETDIR вы можете сделать следующее обходное решение:установите CustomActionData и передайте TARGETDIR в качестве аргумента вашего настраиваемого действия.Это не самое элегантное решение, но оно должно работать довольно легко.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top