1
votes

This was actually a further question from this post: How Can I check .NET framework 4.5 prerequisites?

But I had run into the issue with latest wix 3.8 version, where even following what I think are the directions, no .NET is recognized

1.) With the wxs update with the top level wix tag

xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"

2.) Add the propertyRef tag (I believed it went in the product section - might be a mistake)

 <WIX>
   <PRODUCT>

     <PropertyRef Id="NETFRAMEWORK45"/>

3.) add the condition block, which I also believed went at the same level as PropertyRef, under the product section

4.) I use candle and light on the command line from a bat file

echo running the packaging step: wix candle DEV %VERSION%

call "candle" myproject.wxs -ext WiXNetFxExtension -ext WixUtilExtension -I.\Includes\Dev -dVersion="%VERSION%" -dShortVersion="%SHORTVERSION%" -dBuildTime="%BuildTime%" > dev1.log

echo running the packaging step: wix light DEV

call "light" -sice:ICE50 -sice:ICE61 -sice:ICE64 -ext WiXNetFxExtension -ext WixUtilExtension -o myproject.msi myproject.wixobj > dev2.log

Neither Log seems to show any trouble

dev1.log:

Windows Installer XML Toolset Compiler version 3.8.1128.0 Copyright (c) Outercurve Foundation. All rights reserved.

myproject.wxs

dev2.log has some warnings, but not relevant:

Windows Installer XML Toolset Linker version 3.8.1128.0 Copyright (c) Outercurve Foundation. All rights reserved.

C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(251) : error LGHT0204 : ICE38: Component NonAdvertisedShortcut installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file. C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(259) : error LGHT0204 : ICE38: Component NonAdvertisedShortcut2 installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file. C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(357) : warning LGHT1076 : ICE40: REINSTALLMODE is defined in the Property table. This may cause difficulties. C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(251) : error LGHT0204 : ICE43: Component NonAdvertisedShortcut has non-advertised shortcuts. It should use a registry key under HKCU as its KeyPath, not a file. C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(259) : error LGHT0204 : ICE43: Component NonAdvertisedShortcut2 has non-advertised shortcuts. It should use a registry key under HKCU as its KeyPath, not a file. C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(30) : warning LGHT1076 : ICE48: Directory 'DRIVE.C' appears to be hardcoded in the property table to a local drive. C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(254) : warning LGHT1076 : ICE90: The shortcut 'ScKey001' has a directory that is a public property (ALL CAPS) and is under user profile directory. This results in a problem if the value of the ALLUSERS property changes in the UI sequence. C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(260) : warning LGHT1076 : ICE90: The shortcut 'ScKey002' has a directory that is a public property (ALL CAPS) and is under user profile directory. This results in a problem if the value of the ALLUSERS property changes in the UI sequence.

I have run light with the -v option, and also removed the ICE options.

It seems the extension is not packaged my MSI.

running msiexec to get a verbose log does not seem to reveal anything either.

I felt like I have made a simple mistake somewhere.

1

1 Answers

1
votes

The answers to the problem was that this project originally was created from MSIbuild, and the Wix dark utility was used to build the wxs. It included the custom dialog boxes and install sequence. By removing the custom install sequence , and dialog tags, then adding the -ext WixUIExtension, I was able to successfully see the correct message on .NET 4.5 PCs and PCs that do not yet have .NET 4.5 installed.