Will VS2012 built .Net 4.0 assembly run in machines where .Net 4.5 is not installed

821 Views Asked by At

I know the question is a bit strange, but I am asking it because I have faced some issues with it.

I have Visual Studio RTM 2012 installed side by side with VS2010. According to Microsoft in case of side by side installation of VS2012 and VS2010 some of .Net 4.0 files are replaced with 4.5 version (mscorlib.dll,system.core).

I tried virtualizing one application built with VS2012 for .Net 4.0 using spoon virtual application studio but it showed System.core file not found error.

I replaced the mscorlib.dll and system.Core dlls from Windows\Microsoft.net\4.0 with <ProgramFiles>\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0 files which fixed the file not found error, but this time it showed a WindowsBase 4.0.0.0/3.0.0.0 file not found error.

I fear that if I run this application in machines where .Net 4.5 is not installed (WinXP machines) may produce error, but I don't have a separate machine to test it. Can good folks here confirm this?

1

There are 1 best solutions below

0
On

Officially, if you target .NET 4.0, it should work just fine on a .NET 4.0 machine, including Windows XP. If this is NOT the case, it is absolutely a bug. I'm not saying there aren't some incompatibilities between 4.0 & 4.5, but if you find something that works on a 4.5 machine, but it doesn't work on a 4.0 machine, we'll view it as a bug.

As far as the 'not having a WinXP machine to test it on', I'd suggest just running a VM. The testing problem is real, and while most people don't have issues, if you don't test, Murphy's Law would likely apply, and your app wouldn't work :-/

-Kev