James,
Mission completed!!! At least at this issue.
Thx for the <difx:Driver> displacement tip.
After that, from the log it was obvious there were missing files in missing
amd64 directory.
I looked into both .inf files and provided the 64bit directories (for both .inf
files) and
:-) the installer could successfully install the ftdi drivers.
I am still a little bit confused, why the installer put the directories
under C:\Program Files (x86) as it obviously demands x64 versions of files.
But I'm fully satisfied with that so far.
No, I can focus on finer stuff around WiX.
I think I will even help with localization with Slovenian version of installer.
James, thanks a lot for great help!
Best regards,
Branko
P.S.
For those who also need to install ftdi drivers on windows on your own
(for instance you don't have Internet on the computer), via WiX ver. 3.6
I provide my experience bellow:
I'm using such candle command:
candle.exe -ext WixDifxAppExtension ftdiinstall.wsx
Since my xml source of the wix is ftdiinstall.wsx (provided bellow).
WixDifxAppExtension is
extension, of course. Have a look also of the xml namespace int the root tag of
the xml to
reference on the <difx: ...> preffixed tags as <difx:Driver ...> in my case.
This command produces ftdiinstall.wixobj.
Then I use the folllowing light.exe command:
light.exe -ext WixDifxAppExtension difxapp_x64.wixlib ftdiinstall.wixobj -out
ftdiinstall.msi
ftdiinstall.wixobj is produces by candle.exe and the output is ftdiinstall.msi
(it may be optional).
You may need to include difxapp_x86 instead when you have 32-bit architecture
of the computer.
Since I didn't get explicit result reply if installation was successful or not,
I had to check it (check the expected directories with copied driver files,
check Add/remove apps
under control panel if it was selected to be included there (<difx:Driver ...>
attributes),
or just unplug the network cable and uninstall the drivers (via Device Manager
- right click
uninstall and checkbox on "delete files"; then use your installer and replug
the device via USB).
The finer way to check if something went wrong is using logging with installing
(in this case you don't doubleclick the ftdiinstall.msi in my case but):
msiexec /i ftdiinstall.msi /L* LogFile.txt
/i means install (/x would mean uninstall)
/L* means create full logging into LogFile.txt.
I must emphasize I had all the needed files in the same directory as the
installer files.
Otherwise you would need the -b "path" for light.exe.
And my ftdiinstall.wsx (wix source file) is as follows:
<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'
xmlns:difx='http://schemas.microsoft.com/wix/DifxAppExtension'>
<Product Name='FTDI Drivers Installer'
Id='E00E5A99-913D-4C68-98BF-B43A471CD45D'
Language='1033' Codepage='1252' Version='1.0' Manufacturer='Pieps
GmbH'
UpgradeCode='6179804D-2231-47D0-B569-B9E04B5C0712' >
<Package Id='*' Keywords='install deploy ftdi driver' Description='FTDI
Driver Installer'
Comments='Installs FTDI drivers' Manufacturer='Pieps GmbH'
InstallerVersion='100'
Languages='1033' Compressed='yes' SummaryCodepage='1252'
InstallScope='perMachine' />
<Media Id='1' Cabinet='FTDIInstall.cab' EmbedCab='yes' DiskPrompt='FTDI
Driver Media' />
<Property Id='DiskPrompt' Value='FTDI Driver Install Media' />
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='ProgramFilesFolder'>
<Directory Id='CompanyDir' Name='Pieps'>
<Directory Id='INSTALLDIR' Name='FtdiDrivers'>
<Directory Id='FtdiBusDriverDir' Name='FtdiBusDriver' >
<Component Id='FtdiBusDriverComp'
Guid='C96288D7-0C58-44DB-85A6-F6E2B102BFCB' >
<difx:Driver Sequence='1'
AddRemovePrograms='yes' Legacy='no'
PlugAndPlayPrompt='no'
ForceInstall='no' />
<File Id='FtdiBusINF' Source='.\ftdibus.inf'
Vital='yes' />
<File Id='FtdiBusCAT' Source='.\ftdibus.cat' />
<File Id='BusFtd2xx' Source='.\ftd2xx.h' />
</Component>
<Directory Id='Bus32' Name='i386'>
<Component Id='BusArch32Comp'
Guid='5BE845A4-9787-4218-B578-22878B31231B'>
<File Id='FtdiBusSYS'
Source='.\i386\ftdibus.sys' Vital='yes' />
<File Id='FtBusUiDLL'
Source='.\i386\ftbusui.dll' />
<File Id='Ftd2xxDLL'
Source='.\i386\ftd2xx.dll' />
<File Id='FtLangDLL'
Source='.\i386\FTLang.Dll' />
</Component>
</Directory>
<Directory Id='Bus64' Name='amd64'>
<Component Id='BusArch64Comp'
Guid='1913AE8F-C0E4-4F9A-ADF7-0BE05D25FCAD'>
<File Id='FtdiBus64SYS'
Source='.\amd64\ftdibus.sys'
Vital='yes' />
<File Id='FtBusUi64DLL'
Source='.\amd64\ftbusui.dll' />
<File Id='Ftd2xx64DLL'
Source='.\amd64\ftd2xx64.dll' />
<File Id='FtLang64DLL'
Source='.\amd64\FTLang.Dll' />
</Component>
</Directory>
</Directory>
<Directory Id='FtdiPortDriverDir' Name='FtdiPortDriver'>
<Component Id='FtdiPortDriverComp'
Guid='CB959589-9A83-4E0F-8B4C-3DEA265235D6' >
<difx:Driver Sequence='2'
AddRemovePrograms='yes' Legacy='no'
PlugAndPlayPrompt='no'
ForceInstall='no' />
<File Id='FtdiPortINF' Source='.\ftdiport.inf'
Vital='yes' />
<File Id='FtdiPortCAT' Source='.\ftdiport.cat'
/>
<File Id='PortFtd2xx' Source='.\ftd2xx.h' />
</Component>
<Directory Id='Port32' Name='i386'>
<Component Id='PortArch32Comp'
Guid='8B40EEDD-D47B-4271-8055-F80536F579EF'>
<File Id='FtSer2kSYS'
Source='.\i386\ftser2k.sys' Vital='yes' />
<File Id='Ftserui2DLL'
Source='.\i386\ftserui2.dll' />
<File Id='FtcsercoDLL'
Source='.\i386\ftcserco.dll' />
</Component>
</Directory>
<Directory Id='Port64' Name='amd64'>
<Component Id='PortArch64Comp'
Guid='72EE4D35-C45E-429B-BEED-86919B854BD8'>
<File Id='Ftser2k64SYS'
Source='.\amd64\ftser2k.sys'
Vital='yes' />
<File Id='Ftserui264DLL'
Source='.\amd64\ftserui2.dll' />
<File Id='Ftcserco64DLL'
Source='.\amd64\ftcserco.dll' />
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>
<Feature Id='Complete' Level='1'>
<ComponentRef Id='FtdiBusDriverComp' />
<ComponentRef Id='BusArch32Comp' />
<ComponentRef Id='BusArch64Comp' />
<ComponentRef Id='FtdiPortDriverComp' />
<ComponentRef Id='PortArch32Comp' />
<ComponentRef Id='PortArch64Comp' />
</Feature>
</Product>
</Wix>
Each directory has it's own <Component>.
<difx:Driver ...> is only in the <Component> where .inf files are placed!
Although both .inf files where in the same directory
as apropriate for DSInstall.exe tool,
for WiX each .inf file has to be placed in it's own directory,
thus some files had to be copied to its own directory
(before there were common directories: i386 and amd64).
Altough I had to put some effort to come to the result
(with the help of this mailing list and James)
I learned a lot that way. And I will learn using WiX in the future too ;) .
Regards,
Branko Horvat
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users