Использовать файл DLL установщика Windows вне контекста установщика Windows - PullRequest
0 голосов
/ 15 мая 2018

В пользовательском действии установщика Windows вызывается файл DLL, который получает данные из программы установки с помощью функции MsiGetProperty.

Можно ли использовать такой файл DLL вне программы установки Windows? Если это так, как я могу установить свойства / данные, необходимые для определенной функции файла DLL?

1 Ответ

0 голосов
/ 17 мая 2018

Да, но вам нужны правильные ожидания. Если у вас нет дескриптора установщика, который вы получаете, когда вызывается в контексте установщика, многие из API установщика Windows, включая MsiGetProperty, не могут использоваться.

В зависимости от ваших конкретных потребностей, я бы предложил разделить вашу реализацию на три функции. Одним из них является основная реализация. Любые значения, которые вы в настоящее время получаете с помощью MsiGetProperty, могут быть аргументами этой функции. Любое ведение журнала должно выполняться через помощника, которого вы можете настроить для использования альтернативных средств и т. Д. Эта функция не должна экспортироваться вашей DLL.

Тогда две другие функции должны быть довольно тонкими обертками вокруг этой функции. Они получают значения любым способом, который имеет смысл для их вызова, и передают их основной реализации. Эти две функции экспортируются.

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

...