Come posso utilizzare WiX per distribuire un driver USB INF-based
Domanda
Questa domanda potrebbe essere considerato un duplicato di:
Come faccio a distribuire un inf driver di base?
Solo che voglio fare che tutto nel programma di installazione, non con un programma separato.
Ci si suppone di essere un esempio scaricabile qui: http://msdn.microsoft.com/en-us/library/dd163212. aspx
Ma non c'è link per il download su questa pagina.
La struttura driver è molto semplice, solo un inf e uno SYS. Ho provato questo:
<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>
con il 'wixdifxappextension.dll' e difxapp_x86 entrambi inclusi come riferimenti al mio progetto, e il tag 'pilota' non è riconosciuto. Se uso 'componente' invece di 'Driver', poi il file risultante non è in realtà riconosciuta come pilota, e devo fare l'installazione manuale.
Che cosa sto facendo male qui? Oppure dovrò scrivere ancora un altro programma per fare questo lavoro di installazione? Questo è in Wix 3.0.
Soluzione
Secondo il manuale, <Driver>
dovrebbe essere sotto <Component>
, e il tuo Wix dovrebbe essere simile a:
<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>
Maggiori informazioni questo ragazzo blog