Hi guys. Need your help.
I need to create a simple upgrade for existing application which replaces a couple of files and adds some key to ini-file. Here is my wxs:
| Код | <?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Product Id="C240EDEC-214D-11DF-AD51-636155D89593" Language="1033" Version="0.0.0.1" Manufacturer="NICE Systems" Name="Dymo450MLSupportHF" UpgradeCode="1D717CD3-AD7C-489B-89B0-42916FF45A6C"> <Package Comments="NICE Systems" Description="Dymo450MLSupportHF - Hotfix for Dymo 450 LabelWriter printer support for ML and PS" Id="*" InstallerVersion="300" Keywords="Installer" Languages="1033" Manufacturer="NICE Systems" SummaryCodepage="1252" Compressed="yes" /> <UI /> <Media Id="1" Cabinet="data.cab" EmbedCab="yes" /> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder" Name="PFiles"> <Directory Id="NiceDir" Name="NICE Systems"> <Directory Id="INSTALLDIR" Name="Media Library"> <Component Id="MLExecutable" Guid="EA0A676F-4F14-47F2-A8E6-90F3D0822066"> <IniFile Id="ConfigUpdateNew" Action="addLine" Directory="INSTALLDIR" Name="DAT_DB.INI" Section="Supported_Printers" Key="Dymo LW450" Value="Dymo400.dll/Dymo450" /> <!--<CopyFile Id="MLExecutableBackup" SourceName="LBL_PRNT.exe" DestinationName="LBL_PRNT.exe.backup" SourceDirectory="INSTALLDIR" DestinationDirectory="INSTALLDIR" />--> <File Id="MLExecutableNew" Name="LBL_PRNT.exe" DiskId="1" Source="LBL_PRNT.exe" /> </Component> <Component Id="PrinterDLL" Guid="79F6FD37-CD0A-470E-9612-1A04F098A8CE"> <!--<CopyFile Id="PrinterDLLBackup" SourceName="Dymo400.dll" DestinationName="Dymo400.dll.backup" SourceDirectory="INSTALLDIR" DestinationDirectory="INSTALLDIR" />--> <File Id="PrinterDLLNew" Name="Dymo400.dll" DiskId="1" Source="Dymo400.dll" /> </Component> </Directory> </Directory> </Directory> </Directory> <Feature Id="MLUpdate" Level="1"> <ComponentRef Id="MLExecutable" /> <ComponentRef Id="PrinterDLL" /> </Feature> </Product> </Wix> |
The generated installer doesn't replace two binaries, in log I have the folowing lines:
(C8:30) [14:03:32:109]: The file represented by File table key 'MLExecutableNew' has no eligible binary patches MSI (s) (C8:30) [14:03:32:109]: The file represented by File table key 'PrinterDLLNew' has no eligible binary patches
The instresting thing is that if I change the content of these binaries on target machine (reduce their size down to several bytes) - the files are being replaced normally, but this don't work with original ones. As I suppose it's need to add some Patch or Upgrade elements, but I don't now the upgrade code of the application. All I need is just to replace two existing files with mine and rollback them during the uninstallation. Thanks in advance. |