Как получить доступ к временному Exe или DLL из DLL Custom Action (C ++ DLL) в проекте MSI / WIX? - PullRequest
1 голос
/ 12 июля 2011

У меня есть два варианта использования: 1) загрузка временной DLL во время пользовательского действия и 2) выполнение временного EXE из пользовательского действия.DLL настраиваемого действия - неуправляемый C ++.Я не могу понять, как заставить это работать правильно.Включение DLL достаточно просто, но LoadLibrary завершается сбоем, так как не может найти DLL.Я также не могу получить физический путь извлеченной DLL для указания полного пути в LoadLibrary.Любая помощь приветствуется.Я использую WIX кстати для этой работы.

Ответы [ 2 ]

1 голос
/ 13 июля 2011

Если вы включили dll и exe-файл в двоичную таблицу MSI, файлы будут физически присутствовать в папке% Temp% текущего пользователя, вошедшего в систему, который сопоставляется со свойством SUPPORTDIR установщика Windows.

Вам нужно использовать MsiGetProperty, чтобы получить SUPPORTDIR и использовать его в LoadLibrary.

0 голосов
/ 31 октября 2011

Следует помнить одну вещь: установщик Windows обычно извлекает файлы из двоичной таблицы в% TEMP%, однако текущая рабочая папка часто имеет значение c: \ windows \ installer.

Мое предложение - извлечь временную.dll из двоичной таблицы самостоятельно, когда вам это нужно.Это дает вам контроль, когда он будет сохранен.Просто помните, что вам нужно разрешение на запись в местоположение, поэтому обычно лучше всего использовать какой-либо подкаталог% temp%.

...