0

I don't have much of a programming background, but I have been using Wix to build very basic installations for several years, usually consisting of a browser shortcut with an icon file (The desktop shortcut simply opens 32-bit Internet Explorer to a specific URL). The clientele that use my installers don't usually know about their system and it appears the time has come where I can create a bootstrapper that will run 1 of the 2 .msi files, one for x86 & one for x64. The problem is that the Wix help documentation out there assumes a certain level of knowledge about programming and/or Wix and I need "for dummies" level of help. Using code snippets from Rob's answers to an earlier post here (similarly titled) and a post on another site, I have this in my .wxs:

    <?xml version="1.0" encoding="UTF-8"?>
    <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
  <Bundle Name="Intermountain SecureAccess Desktop Icon Installer" Version="1.0.0.0" Manufacturer="Intermountain Healthcare" UpgradeCode="61b75a8f-67f6-43a1-beb9-1a0be426b5a6">
    <BootstrapperApplicationRef Id='WixStandardBootstrapperApplication.HyperlinkLicense' />
      <Payload SourceFile="86IHCSAHCO.msi"/>
      <Payload SourceFile="64IHCSAHCO.msi"/>
      <Payload SourceFile="C:\Program Files (x86)\WiX Toolset v3.7\SDK\Microsoft.Deployment.WindowsInstaller.dll"/>
    </BootstrapperApplicationRef>
    <Chain>
      <PackageGroupRef Id='Netfx4Full' />
      <MsiPackage SourceFile="IHCSAHCO.msi" Id="InstallationPackageId" Cache="yes" Visible="no"/>
      <MsiPackage InstallCondition='NOT VersionNT64' SourceFile='86IHCSAHCO.msi' />
      <MsiPackage InstallCondition='VersionNT64' SourceFile='64IHCSAHCO.msi' />
    </Chain>
  </Bundle>

</Wix>

The goal is to create a single .msi (or .exe) called IHCSAHCO.msi which contains the 2 msi packages 86IHCSAHCO.msi & 64IHCSAHCO.msi and then simply runs one or the other depending on the environment. When I run the batch file (called Burn.wxs) with this in it...

set WIX_ROOT=%programfiles(x86)%\WiX Toolset v3.7\bin
del /q /f *.wixobj *.msi
call "%WIX_ROOT%\candle.exe" Burn.wxs 
call "%WIX_ROOT%\light.exe"  Burn.wixobj -sice:ICE38
pause

...here is the error:

Burn.wxs C:\PATH\Burn.wxs(8) : error CNDL0104 : Not a valid source file; detail: The 'Bundle' start tag on line 3 position 4 does not match the end tag of 'BootstrapperApplicationRef'. Line 8, position 7.

I feel as though I am close and am hoping one of you could take a quick peek at the code and give suggestions. It would be much appreciated...

Thanks! RHH

4

1 回答 1

0

第 4 行的开始BootstrapperApplicationRef元素是一个空元素 - 它不应该以/>.

你用什么来编辑你的文件?将文件粘贴到 Notepad++ 并打开 XML 突出显示很快就发现了问题。

于 2013-10-18T21:26:53.937 回答