Como faço para usar o Wix para implantar um driver USB baseado em INF
Pergunta
Esta questão pode ser considerada uma duplicata de:
Como faço para implantar um driver baseado no .inf?
Exceto que eu quero fazer isso inteiramente no instalador, não com um programa separado.
Deveria haver um exemplo de download aqui:http://msdn.microsoft.com/en-us/library/dd163212.aspx
Mas não há link para download nessa página.
A estrutura do motorista é muito simples, apenas um inf e um sistema. Eu tentei o seguinte:
<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>
Com o 'wixdifxappxtension.dll' e o DIFXAPP_X86 incluídos como referências ao meu projeto, e a tag 'Driver' não é reconhecida. Se eu usar o 'componente' em vez de 'driver', o arquivo resultante não é realmente reconhecido como um driver e eu tenho que fazer uma instalação manual.
O que eu estou fazendo errado aqui? Ou terei que escrever mais um programa para fazer com que este instalador funcione? Isso está no Wix 3.0.
Solução
De acordo com o manual, <Driver>
deve estar abaixo <Component>
, e seu wix deve parecer algo como:
<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>
Mais informações de Blog desse cara