View Full Version : .NET 2.0 and Vista
OceanBlue
2010-12-07, 06:01
I'm finding that a lot of applications that require .NET 2.0 aren't running on Vista. I've been looking around for solutions, but I was wondering if there was one aside from reinstalling Vista? Apparently it isn't supported by Microsoft anymore?
Also, does upgrading to Windows 7 work? I honestly might do it because it just seems so much better.
Are you sure you have .NET 2.0 installed? It's still supported by Microsoft, and you can still download it, but I believe Vista comes with .NET 3.0 by default.
aeriolewinters
2010-12-07, 08:22
install the framework. .NET programs are picky with frameworks so it doesn't mean you have a free pass when you have 4.0 installed, it's not compatible.
get 2.0 because 3.0 and 3.5 have very different frameworks.
I can confirm this. The 2.0 and 3.X runtimes are different. And a .NET 2.0 application is unlikely to run in 3.X
NightWish
2010-12-08, 17:45
I don't think you have a straightforward problem if applications targeting version 2.0 of the CLR won't run, because as monstert said Vista should have shipped with the required components already installed (http://msdn.microsoft.com/en-us/library/bb822049.aspx). What service pack level do you have installed? The application might require .NET Framework 2.0 SP1 or SP2; SP1 is only installed by default on Vista SP1. Once you have any of them installed I believe windows update will prompt you to move to the latest version though.
It is true that .NET Framework version 4.0 won't help you run applications targeting previous versions (http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2009/08/03/installing-net-framework-v4-0-and-running-net-2-0-3-0-3-5-3-5sp1-applications.aspx), but only because it uses CLR 4.0, which isn't the case with framework v2.0,v3.0,v3.5SP1 which all use CLR 2.0.
Two questions come to mind: What error messages do you get when trying to run the application?
What folders do you have in the framework's install location:%systemroot%\Microsoft.NET\FrameworkYou should have one for each framework version already installed.As for installing Windows 7; it is indeed an improvement and if you're considering upgrading outside this issue, then the answer is probably yes. I'm not sure I would upgrade just to fix one problem which can probably be resolved by less drastic measures; but it depends how long you've spent on the problem and how important the program you're trying to run is to you.
It is true that .NET Framework version 4.0 won't help you run applications targeting previous versions (http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2009/08/03/installing-net-framework-v4-0-and-running-net-2-0-3-0-3-5-3-5sp1-applications.aspx), but only because it uses CLR 4.0, which isn't the case with framework v2.0,v3.0,v3.5SP1 which all use CLR 2.0.
Its funny, if you actually take a look inside your winsxs folder, it will tell you that the core compatibility is really meant to be for "core stuff" (otherwise you wouldn't have dozens of versions for each and every runtime library). The CLR is not the only thing that has to fit, for example many (professional) programs use version checking runtime components when starting up (how do you check correctly for future versions that you did not were aware of when you released the program?). Or often .Net classes are used that are not the same in a future product. If your interface demands to call function x with 3 parameters (old framework) instead of 4 or 2 parameters (new framework)... or the function was entirely cut, you will end up with an incompatibility. [applies only for the 2.0 service packs]
edit:
Actually it is as Nightwish said, its really just an issue with the service packs of .NET framework 2.0 (.NET 3.0 contains all essential runtime libraries of the basic .NET 2.0).
OceanBlue
2010-12-09, 10:26
I don't think you have a straightforward problem if applications targeting version 2.0 of the CLR won't run, because as monstert said Vista should have shipped with the required components already installed (http://msdn.microsoft.com/en-us/library/bb822049.aspx). What service pack level do you have installed? The application might require .NET Framework 2.0 SP1 or SP2; SP1 is only installed by default on Vista SP1. Once you have any of them installed I believe windows update will prompt you to move to the latest version though.
It is true that .NET Framework version 4.0 won't help you run applications targeting previous versions (http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2009/08/03/installing-net-framework-v4-0-and-running-net-2-0-3-0-3-5-3-5sp1-applications.aspx), but only because it uses CLR 4.0, which isn't the case with framework v2.0,v3.0,v3.5SP1 which all use CLR 2.0.
Two questions come to mind: What error messages do you get when trying to run the application?
What folders do you have in the framework's install location:%systemroot%\Microsoft.NET\FrameworkYou should have one for each framework version already installed.As for installing Windows 7; it is indeed an improvement and if you're considering upgrading outside this issue, then the answer is probably yes. I'm not sure I would upgrade just to fix one problem which can probably be resolved by less drastic measures; but it depends how long you've spent on the problem and how important the program you're trying to run is to you.
I don't get any error messages. Nothing happens at all. The programs don't give any indications that I try to start them.
I have Windows Vista SP2 x64. As for the folders, turns out I have
1041
v1.0.3705
v1.1.4322
v2.0.50727
v3.0
v3.5
v4.0.30319
in Framework, and...
1041
v2.0.50727
v3.0
v3.5
v4.0.30319
in Framework64. So I guess I have it.
NightWish
2010-12-09, 10:59
Can you give any more information about the program you're trying to run? That might help narrow down the possible causes. The existence of the correct folders and lack of an error message points to another cause in my opinion.
If you trust the application you're trying to run, have you tried running it with elevated privileges? Some software doesn't cooperate with the User Account Control (UAC (http://en.wikipedia.org/wiki/User_Account_Control)) "technology" found in Windows versions since Vista. I've seen a number of applications fail to run without generating the often seen UAC request windows (they silently fail if your user doesn't have the permissions they need because they've not informed the OS they want said privileges). Most often with older install software, but something similar could be happening in your case.
aeriolewinters
2010-12-09, 20:40
Oh, I've developed a program under .NET 2.0 and it seems so high on security that only an administrator level user can make it work 100%. Raising up UAC would actually work, since you're removing restrictions from the security layer.
OceanBlue
2010-12-10, 17:12
Well, turns out I've tried a program that needs .NET 3.5 and that doesn't work either. It's weird because it used to work before. I've stopped using it for a while now, so I don't know how long it's been since it stopped working.
This is a program:
http://blog.dantarion.com/brawl-custom-song-maker-gui/
There are some others which don't work as well, but it isn't just one program.
I should have UAC disabled. That's what my computer is telling me.
aeriolewinters
2010-12-10, 17:52
No, just use 'run as administrator'
NightWish
2010-12-10, 19:19
If running as administrator doesn't help, lets try different a approach and see if something very simple will run and on which framework.
Attached is an archive that contains 6 small programs. They are named based on the framework version they were built against (2.0, 3.0, 3.5, 3.5 client profile, 4.0, and 4.0 client profile). When run they show a message box with the CRL version being used. Can you run each one and feedback the results; i.e. does the program run and if it does what version is shown. All except the version 4.0 files should show something like "2.0.50727.????", the version 4.0 versions should show "4.0.30319.????".
OceanBlue
2010-12-13, 12:39
All of the ones except the version 4.0 files show: Framework version 2.0.50727.4206
The version 4.0 files show: Framework version 4.0.30319.1
Also, I've tried running the programs as administrator.
NightWish
2010-12-13, 13:22
Given those programs run at all, there isn't anything wrong with your .NET framework install at a very basic level. i.e. by being able to run all of them you've demonstrated that .NET applications will run on your system. Something might be damaged in the installs of the applications you're trying to run or with specific aspects of the .NET Framework that the programs I attached don't test. I think this is unlikely however.
When you say you've tried to run the programs as administrator, does that include the song maker gui? If so you've probably removed most of the possible permission issues. Thinking about the fact the programs worked before suggest that this is also not the issue however.
Did you install .NET 4.0 between now and when the programs last worked? It might be that the programs are being run using CLR v4.0, when the code expect CLR v2.0, and they are thus failing. Try explicitly setting the Supported Runtime (http://msdn.microsoft.com/en-us/library/w4atty68.aspx) in the application's configuration file:<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>Note: the file might not exist. It will be named: "{EXE File Name}.config" and found in the same folder as the program itself.
Failing that I would resort to reinstalling the troublesome application. Then if that too doesn't help, try a "repair" install on the 3.5 Framework. I don't know my way around vista very well, so I'm not sure where you'll find the option. Probably under the windows components section of the control panel (again not exactly sure what it is called).
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.