Click here to Skip to main content
15,029,308 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi experts,

there's an application I have written and compiled against .Net2.0. It has an installation routine that creates an .msi package, .exe file and subfolders for the required framework and Windows Installer version so that user should be able to run the installation from USB media without internet connection.

For some time now, that has worked for our customer's customers (it's a contract development).

Now I added some features and wanted to test them on a Windows 8.1 PC that I got from our IT department.

The application doesn't start. Instead, it tells me to need .Net 3.5.

As I mentioned above, I compiled against 2.0.
One of the included libraries is also compiled here, against 2.0.
The other libraries are just as they have always been.

How can I find out what part of my application needs .Net 3.5?

I tested on an XP laptop. Uninstalled everything .Net-related. Started my application and got error 0xc0000135 (dll not found). The internet tells me to read this as "missing .Net framework version".
I started my installer and it installed .Net2.0 prior to the application without errors. App then runs as well.

What's different in a Windows 8.1 that the installer doesn't work?
Updated 21-Jan-15 1:55am
Staffan Bruun 21-Jan-15 4:59am
According to this Microsoft web page, Windows 8 has .NET 4.5 pre-installed, whereas .NET 3.5 can be installed on demand. This also includes support for .NET 2.0 and .NET 3.0.

You may have to change the installer to install the 3.5 framework in order to make it compatible with Windows 8.
lukeer 21-Jan-15 7:31am
But there's no need for 3.5 in my code. Nor in any of the project's libraries that I know about.
How can I find out what part needs 3.5?
Staffan Bruun 21-Jan-15 7:37am
It is not that anything in your project would need 3.5, as such.

The problem, as I can tell from the web page, is that in order to add 2.0 support to Windows 8, you have to install .NET 3.5, because there is no separate .NET 2.0 installer for Windows 8.

This is why Windows 8 tells you it needs .NET 3.5 when it is trying to load your executable.

It seems strange that this error message only happens when you run the software after installing. Are there any warnings or errors during the installation process? (Try installing from the command line using msiexec with the /log <logfile> option.)

1 solution

It seems that Windows 8 simply does not support .NET framework installers at all; instead, you have to enable older .NET support in the OS settings.

This can be done from the Control Panel, but this requires an Internet connection.

There is also a way to do this from the command line, but you need the Windows 8 installation media to do this.

Detailed instructions for both scenarios can be found in the following page:[^]

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900