Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > WiX: Simple upgrade for existing app


Автор: Абабо 27.2.2010, 23:40
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. 

Автор: mihanik 27.2.2010, 23:50
Сдаётся мне, что этот вопрос ближе к программированию...
 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)