Hi, I have some problems with using the new "burn" feature. I want to create a bootstrapper that checks for a particular .NET version and then eventually installs the missing prerequisite before it installs my own application.
If have two problems: (1) The "DetectCondition" for my .NET Webinstaller ExePackage doesn't work as I want it to work I try to check the exact complete version number of the installed .NET package. As I'm targetting .NET 3.0, I want to check if the installed version is "3.0.30729.5420". Maybe my attempt is a little bit naive, but from reading the documentation I couldn't find why this shouldn't work: > <?xml version="1.0" encoding="UTF-8"?> > <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" > xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> > <Bundle Name="FoobarBootstrapper" Version="1.0.0.0" > Manufacturer="FooBar" UpgradeCode="B8B07D94-4E16-4942-8EE1-3342C5CC22CD"> > <BootstrapperApplicationRef > Id="WixStandardBootstrapperApplication.RtfLicense" /> > > <util:RegistrySearch Id="FindDotNet30InstallRegValue" Root="HKLM" > Key="SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" > Value="InstallSuccess" Variable="DotNet30InstallRegValue" /> > <util:RegistrySearch Id="FindDotNet30Version" Root="HKLM" > Key="SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" Value="Version" > Variable="DotNet30Version" /> > > <Chain> > > <ExePackage Id="DotNet3.0" Cache="no" Compressed="no" Vital="yes" > PerMachine="yes" Name="DotNet3.0" SourceFile="DotNetFx3Setup.exe" > DetectCondition="DotNet30InstallRegValue=1 AND > DotNet30Version=3.0.30729.5420"/> > <MsiPackage Id="ClientInstall" Cache="no" Compressed="no" > Name="FoobarInstall" SourceFile="foobar.msi" Vital="yes" /> > > </Chain> > > </Bundle> > </Wix> This is the result I get in the log file on a system that has the desired version installed: > [0BBC:11CC][2011-11-02T12:47:18]: Setting string variable > 'DotNet30InstallRegValue' to value '1' > [0BBC:11CC][2011-11-02T12:47:18]: Setting string variable 'DotNet30Version' > to value '3.0.30729.5420' > [0BBC:11CC][2011-11-02T12:47:18]: Detected related bundle: > {732f16dc-46cd-4f24-8b55-a5c4f0e9b03e}, scope: PerMachine, version: 1.0.0.0, > operation: None > [0BBC:11CC][2011-11-02T12:47:18]: Error 0x8007000d: Failed to parse condition > "DotNet30InstallRegValue=1 AND DotNet30Version=3.0.30729.5420". Unexpected > character at position 47. I also tried without the "AND" condition, just with the second half of my condition, but the result is the same. Does anybody have an idea what might be wrong here? (2) Uninstalling always tries to remove .NET If I just check for the presence of .NET 3.0 without checking the exact version, I can successfully install my application on a computer where .NET 3.0 is already installed. But when I try to uninstall the bootstrapper, it always tries to uninstall .NET 3.0 also. As this is not possible on Windows 7 (at least not that way), the whole uninstall process fails and I can't uninstall my application. Can someone explain me what I'm doing wrong here? TIA, Mathias ------------------------------------------------------------------------------ RSA® Conference 2012 Save $700 by Nov 18 Register now! http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users