使用WiX更新安装有WISE的旧应用

时间:2019-11-07 02:45:24

标签: wix

我正在开发具有许多旧组件的应用程序。我们在使用旧的WISE安装程序创建升级补丁时遇到了问题。我正在研究使用WiX为应用程序构建更新MSI的可能性,该更新MSI仅包含我们更改要构建的文件。我正在使用这样的文件:

<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>

  <Product Name='My Product' Id='AGUID-xxx-xxx-xxx-xxx' UpgradeCode='AGUID-xxx-xxx-xxx-xxx'
    Language='1033' Codepage='1252' Version='5.60.0' Manufacturer='Me'>

    <Package Id='*' Keywords='Installer' Description="My Upgrade Installer"
      Comments='This is an awesome installer because I wrote it' Manufacturer='Me'
      InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' />

    <Upgrade Id='AGUID-xxx-xxx-xxx-xxx'>
      <UpgradeVersion OnlyDetect='yes' Property='NEWERFOUND'
        Minimum='5.51.1' IncludeMinimum='yes' />
    </Upgrade>

    <Property Id='BINDIR'>
      <RegistrySearch Id='TheRegEntry' Type='raw' Root='HKLM' Key='Software\Me\MyApp\Startup' Name='Location' />
    </Property>

    <CustomAction Id='NoDowngrade' Error='A later version of [ProductName] is already installed.' />

    <Media Id='1' Cabinet='My.cab' EmbedCab='yes' DiskPrompt="You should not see this disk prompt" />
    <Property Id='DiskPrompt' Value="You should not see this disk prompt" />

    <Directory Id='TARGETDIR' Name='SourceDir'>
      <Directory Id='ProgramFilesFolder' Name='PFiles'>
        <Directory Id='BINDIR' Name='Bin'>

          <Component Id='MyExeComponent' Guid='*'>
            <File Id='MyExeFile' Name='something.exe' DiskId='1' Source='<local path>\something.exe' KeyPath='yes'></File>
          </Component>

        </Directory>
      </Directory>
    </Directory>

    <Feature Id='MainProgram' Title='AnExe' Description='This is just one file of many' Level='1'>
      <ComponentRef Id='MyExeFile' />
    </Feature>

    <InstallExecuteSequence>
      <Custom Action='NoDowngrade' After='FindRelatedProducts'>NEWERFOUND</Custom>
    </InstallExecuteSequence>

  </Product>
</Wix>

这基本上是WiX文档中的升级示例,其中包含注册表查找以获取安装位置,然后只有一个EXE文件副本。

实际的安装程序在MyExeComponent中有多个文件,我想更新这些文件,但是我仅指定更改的文件。我想我真正要问的是仅“声明”完整安装的一部分的安装程序实际上可以更新现有安装。

它将在目标系统上构建并运行,没有错误,但是我要更新的文件没有更新,并且程序从“控制面板”中的已安装程序列表中消失了。

我们的旧版更新补丁过程涉及从多个MSI创建一个MSP,然后运行创建EXE文件的第二步。如果无法使以上功能起作用,我可以尝试将WiX生成的MSP输入该过程。

0 个答案:

没有答案