Как использовать WiX для развертывания USB-драйвера на основе INF

Этот вопрос можно рассматривать как дубликат:

Как развернуть драйвер на основе .inf?

За исключением того, что я хочу сделать это полностью в установщике, а не с отдельной программой.

Здесь должен быть приведен пример: http://msdn.microsoft.com/en-us/library/dd163212.aspx

Но на этой странице нет ссылки для скачивания.

Структура драйвера очень проста, просто inf и sys. Я пробовал это:

  <Directory Id='SystemFolder' Name='System32'>
    <Directory Id='DriversFolder' Name='Drivers'/>
  </Directory>

...

<DirectoryRef Id="DriversFolder">
  <Driver Id="cyusb" Guid="*">
    <File Id="cyusb.inf" Source="..\Includes\cyusb.inf" />
  </Driver>
  <Driver Id="cyusb_sys" Guid="*">
    <File Id="cyusb.sys" Source="..\Includes\cyusb.sys" />
  </Driver>
</DirectoryRef>

с 'wixdifxappextension.dll' и difxapp_x86, которые включены в качестве ссылок на мой проект, и тег 'driver' не распознается. Если я использую "компонент" вместо "driver", то полученный файл фактически не распознается как драйвер, и я должен выполнить ручную установку.

Что я здесь делаю неправильно? Или мне придется написать еще одну программу, чтобы этот установщик работал? Это в Wix 3.0.

Ответы

Ответ 1

В соответствии с manual <Driver> должно быть указано <Component>, ваш Wix должен выглядеть примерно так:

<DirectoryRef Id="DriversFolder" FileSource="..\Includes\">
  <Component Id="MyDriver" Guid="[PUT GUID]">
    <Driver Legacy='yes' />
    <File Id="cyusb.inf" Vital="yes" />
    <File Id="cyusb.sys" Vital="yes" />
  </Component>
</DirectoryRef>

Дополнительная информация из этот блог-блог