Недавно я столкнулся с этой проблемой, пытаясь создать установщик для ReplicatorG , который включает драйверы Arduino и некоторые драйверы, специфичные для Makerbot Replicator.
Казалось, что нет никакого способа определить местоположение PnPutil, и вместо этого мне пришлось приобрести Microsoft DIFx и использовать их распространяемый DPinst.
В DPinst было несколько странных вещей, которые затрудняли его использование. Во-первых, кажется, что он не работает должным образом, если он находится в дереве каталогов с пробелами в пути. Кто знает почему. Во-вторых, поскольку драйверы Arduino не подписаны, их нужно было запускать в устаревшем режиме, чтобы избежать появления большого красного диалогового окна, предупреждающего пользователя. Для запуска в устаревшем режиме вы используете флаг /lm
, но этот флаг должен быть в нижнем регистре. Опять же, неясно, почему.
В конце концов, я попросил установщика скопировать dpinst и каждый из драйверов в папку во временном каталоге, а затем запустить dpinst. Появляется симпатичный маленький мастер и сообщает пользователю, какие драйверы были установлены.