Условная регистрация определенных dll (ов) в процессе установки.(расплывчато)

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

Вопрос

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

Функциональность для использования принтера заложена в коде приложения, и в коде есть ссылки на библиотеки dll, которые взаимодействуют с принтером.Таким образом, dll-файлы являются частью пакета installation .msi.

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

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

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

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

Есть какие-нибудь возможные решения?

Это было полезно?

Решение

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

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

http://msdn.microsoft.com/en-us/library/aa371564 (ПРОТИВ 85).aspx

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