2
votes

I am using Visual Studio Express for Desktop 2013, because I am using the express version I have decided to use WiX to build a simple installer.

I am using WiX Edit v0.7.5.0 and have WiX Toolset v3.8 installed.

I have successfully built an msi that works, but would now like to add a .NET Framework check into the equation.

I am still very new to using WiX and I have followed the steps in this how to guide and I can get a msi built which includes a check for the .NET Framework Version 3.5:

http://wixtoolset.org/documentation/manual/v3/howtos/redistributables_and_install_checks/check_for_dotnet.html

As soon as I try to check for the .NET Framework Version 4.0 or above I encounter errors.

I have simply amended the PropertyRef and Condition as follows:

<PropertyRef Id="NETFRAMEWORK40FULL" />
<Condition Message="This application requires .NET Framework 4.0. Please install the .NET Framework then run this installer again."><![CDATA[Installed OR NETFRAMEWORK40FULL]]></Condition>

When I then run the Build MSI Setup Package I get the following in my Results Panel:

    ----- Starting C:\Program Files (x86)\WixEdit\wix-3.0.5419.0\candle.exe -nologo "C:\Users\GT\Documents\Visual Studio 2013\WiX\Temp.wxs" -out "C:\Users\GT\Documents\Visual Studio 2013\WiX\Temp.wixobj"  -ext WixUIExtension  -ext WixNetFxExtension  at 05/09/2014 14:34:12

    Temp.wxs

    Done in: 358 ms

    ----- Starting C:\Program Files (x86)\WixEdit\wix-3.0.5419.0\light.exe -nologo "C:\Users\GT\Documents\Visual Studio 2013\WiX\Temp.wixobj" -out "C:\Users\GT\Documents\Visual Studio 2013\WiX\Temp.msi"  -ext WixUIExtension  -ext WixNetFxExtension  at 05/09/2014 14:34:12

    C:\Users\GT\Documents\Visual Studio 2013\WiX\Temp.wxs(39) : error LGHT0094 : Unresolved reference to symbol 'Property:NETFRAMEWORK40FULL' in section 'Product:F0989A9C-638B-4924-8BB1-6556A546E2AE'.

----- Finished

Error in light

I have done quite a bit of searching to try and resolve this problem and have came across several articles which seem to agree with what I have done, alas I am still getting the same error message shown above.

Am I missing something quite simple here?

1

1 Answers

0
votes

Using the Extension dlls from the WiX Toolset itself instead of those packaged by WiXEdit will ensure that light.exe is using the most current dlls.

For Example:

C:\Program Files (x86)\WixEdit\wix-3.0.5419.0\light.exe -nologo "C:\Users\GT\Documents\Visual Studio 2013\WiX\Temp.wixobj" -out "C:\Users\GT\Documents\Visual Studio 2013\WiX\Temp.msi"  -ext "C:\Program Files (x86)\WiX Toolset v3.8\bin\WixUIExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.8\bin\WixNetFxExtension.dll"