Условная регистрация определенных dll (ов) в процессе установки.(расплывчато)
-
05-09-2019 - |
Вопрос
У меня есть приложение, которое в некоторых случаях будет использовать устройство (т.е.принтер).По сути, в одном офисе этот принтер будет использоваться, а в другом офисе этот принтер никогда не будет использоваться.
Функциональность для использования принтера заложена в коде приложения, и в коде есть ссылки на библиотеки dll, которые взаимодействуют с принтером.Таким образом, dll-файлы являются частью пакета installation .msi.
Однако эти DLL-файлы не могут быть зарегистрированы во время установки, если не установлено необходимое условие (набор драйверов для принтера, предоставляемых производителем в виде единого установочного exe-файла).Установщик драйверов имеет размер около 50 м.
Я не хочу включать дополнительный файл размером 50M в установочный пакет для office, который никогда не будет использовать принтер.Каковы возможные обходные пути решения проблемы?
В конечном счете, я хотел бы иметь возможность каким-то образом пропустить регистрацию этих DLL-файлов во время установки.Но я не знаю, как к этому подойти.
Я думаю, что у меня могла бы быть условная компиляция в коде.Но это потребовало бы значительного объема работы, чтобы полностью отделить код, который взаимодействует с этим типом принтера, от остального кода приложения.
Есть какие-нибудь возможные решения?
Решение
Сгруппируйте библиотеки DLL, которые должны быть условно установлены / зарегистрированы как компонент.Затем в вашем MSI Компонент таблица, используйте столбец Условия, чтобы зависеть от устанавливаемого свойства.В вашем MSI таблицы локаторов, настройте строки для поиска предварительных условий и задайте свойство.
Вы можете узнать больше об этом, прочитав:
http://msdn.microsoft.com/en-us/library/aa371564 (ПРОТИВ 85).aspx