Search code examples
.netwindowsinstallshield-le

Install or activate .NET 3.5 Windows XP - 10 using InstallShield LE 2015


Our program uses a 3rd party .NET COM wrapper written to work back to .NET 2.0, so it works with the .NET 3.5 SP1 framework installed.

Since .NET 3.5 became a Windows Feature that was disable by default starting with Windows 8, we've had trouble with our software working on Windows 8 - 10. The installer says that the .NET 3.5 feature is not installed, but it doesn't activate the feature for the user. The .NET 3.5 framework became a Windows Feature in Windows 7 and .NET 3.0 in Vista but it was enabled by default then so we didn't have any trouble.

I've read that there was a resolved issue for this, IOA-000073897. A new prerequisite, Microsoft .NET Framework 3.5 SP1 (Windows Feature).prq, was available for InstallShield versions before 2013 and that future versions of InstallShield will include this InstallShield prerequisite. I don't see the prerequisite in InstallShield LE 2015. If I continue to use the Microsoft .NET Framework 3.5 SP1 (Web Download) prerequisite in IS LE 2015 my install still fails in the same way on Windows 8.1 and 10.

I tried adding the "Microsoft .NET Framework 3.5 SP1 (Windows Feature).PRQ" prerequisite to my ISLE installation and to the installer I'm building with the same results.

Can InstallShield Limited Edition 2015 handle the .NET 3.5 Framework requirement on Windows XP - 10?

If it can, how do I get it to work? What am I missing?

If it can't, what versions do support this setup?


Solution

  • My answer includes dropping automatic-install support for Windows XP, not a big loss in our case.

    The first thing needed to make this work is the "Microsoft .NET Framework 3.5 SP1 (Windows Feature)" InstallShield Prerequisite file (.prq). I found my first one at InstallShield's page talking about the issue for Windows 7 and then had a second one shared with me in their community user form.

    To work with ISLE 2015 on Windows 10 I needed to modify the second one to include a Windows 10 operating system condition line:

    <operatingsystemcondition MajorVersion="10" MinorVersion="0" PlatformId="2" CSDVersion=""></operatingsystemcondition>
    

    I put this modified .PRQ file into the same directory as the other ISLE2015 PRQ files, ran Visual Studio as admin to download the required items, and then exited and switched back to limited user and used it like normal. I unchecked the "Microsoft .NET Framework 3.5 SP1 (Web Download)" feature I had been using and checked this new "Windows Feature" version.

    This might be all you need, unless you're using a SingleImage release with a setup.exe launcher and only shipping the exe launcher. In that case you need to configure the InstallShield Prerequisites Location to be "Extract from Setup.exe" in either the Setup.exe properties under SingleImage of Releases or in the Redistributables tab's prpperties for the new Windows Feature.

    After that my installer worked on Windows Vista-10. On Vista and 7 it works without any hitch and on 8-10 it prompts to enable .NET 3.5 and enables it before continuing the install.