Условная регистрация определенных dll (ов) в процессе установки. (Расплывчатым) - PullRequest
0 голосов
/ 20 февраля 2009

У меня есть приложение, которое в некоторых случаях будет использовать устройство (например, принтер). По сути, в одном офисе этот принтер будет использоваться, а в другом офисе этот принтер никогда не будет использоваться.

Функциональность использования принтера находится в коде приложения, а библиотеки DLL, которые связываются с принтером, упоминаются в коде. Таким образом, DLL являются частью установочного MSI-пакета.

Однако эти dll не могут быть зарегистрированы во время установки, если не установлено обязательное условие (набор драйверов для принтера, предоставляемый производителем в виде единого exe-файла). Установщик драйверов размером около 50M.

Я не хочу включать в установочный пакет дополнительный файл размером 50 МБ для офиса, который никогда не будет использовать принтер. Каковы возможные пути решения проблемы?

В конечном счете, я бы хотел как-нибудь пропустить регистрацию этих dll во время установки. Но я не знаю, как подойти к этому.

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

Любые возможные решения?

1 Ответ

3 голосов
/ 20 февраля 2009

Сгруппируйте библиотеки DLL, которые должны быть условно установлены / зарегистрированы для компонента. Затем в таблице MSI Component используйте столбец Условие, чтобы зависеть от устанавливаемого свойства. В таблицах вашего MSI настройте строки для поиска необходимых условий и задайте свойство.

Вы можете узнать больше об этом, прочитав:

http://msdn.microsoft.com/en-us/library/aa371564(VS.85).aspx

...