[wix-users] Per User Installs and ICE Errors

rpapo at comcast.net rpapo at comcast.net
Wed Jun 17 08:13:45 PDT 2020


I am building a WiX BA to install an older product which requires the
presence of .NET 3.5, and have gotten to the part where I make sure .NET 3.5
is installed, and if not, install it as part of the bootstrapper bundle.

Ignoring the bulk of the script, there are two parts that matter here.  The
first is to detect whether or not .NET 3.5 is already installed:

    <!--check if .NET Framework 3.5 is installed-->
    <Variable Name="Netfx35Version" Type="numeric" bal:Overridable="yes"
Value="0"/>
    <util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework
Setup\NDP\v3.5" Value="Version" Variable="Netfx35Version" Result="exists" />

This works.  I am aware of the NETFRAMEWORK35 variable, but have not been
able to get it to cooperate with me.

The second part is in the CHAIN section:

      <!-- .NET 3.5 -->
      <ExePackage Id="NetFX35Enable"
        DisplayName="Enabling .NET 3.5."
        SourceFile="c:\Windows\System32\Dism.exe"
        InstallCondition='NOT Netfx35Version'
        InstallCommand="/Online /Enable-Feature /FeatureName:NetFx3"
        PerMachine="yes"
        Permanent="yes"
        Compressed="yes"
        Cache="always"
      />

There are two problems here.  The first is, why am I not using
[SYSTEM64FOLDER]?  Because the WiX compiler can't find the definition.

The second problem is that when I actually try to run this, DISM.exe dies
with error code 0xB, which from bits and pieces I find on the internet means
that it wants to run in the system folder, and since we have no control over
the working directory in EXEPACKAGE, that option is out.

Has somebody found a better solution to this problem?

--Rick Papo






More information about the wix-users mailing list