1.1 .NET Framework is Needed for Smart Device Projects targeting 1.0 NET CF (Compact Framework) in Visual Studio 2005 (VS2005)
====>SiteMap of this Blog<===
1.1 .NET Framework is Needed for Smart Device Projects targeting 1.0 NET CF (Compact Framework) in Visual Studio 2005 (VS2005)
Our new team member was opening a SDK sample C# solution in Visual Studio 2005, and could not build it. I took a look at the output window. The output was huge with 700+ lines, considering how tiny the sample project is. The following error message was shown there:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.CSharp.Targets(147,9): error VSD6000: Projects targeting .NET Compact Framework 1.0 require version 1.1 of the .NET Framework, which is not detected on this machine.
This sounds strange and interesting, as I never seen this error message in my own PC. A quick search results in the following MSDN2 library documentation:
Looks like the team member just installed a fresh PC with VS2005 and Windows Mobile SDKs, and apparently Visual Studio 2005 installed .NET Framework 2.0, but not 1.1. To solve the problem is easy, just downloading .NET Framework 1.1 and installing it in the team member's PC.
I did not see this problem in my own PC, because several versions of .NET Framework already reside in my PC. Such weird requirement actually puzzled me. Why cannot .NET 2.0 Framework do the job, if .NET 1.1 can do? I am not familiar with what happens under the hood, but just wondering how confusing it is. I myself did a lot of java coding (ever since JDK 1.1), and I've never seen such a weird requirement that old JDK or JRE has to be present for some stuff to work. Kudos to Sun Microsystem guys!
Another thing worth mentioning is one statement in that MSDN2 documentation page:
Smartphone 2003 projects fall into this category (.NET Compact Framework version 1.0)
Sometimes I saw people posted questions to certain forums wondering how to develop .NET CF 2.0 applications for Smartphone 2003 platforms. Unfortunately this is not supported. The root reason is that Smartphone 2003 does not persist "\Windows" folder (the one it persists is "\Storage\Windows"). Rather funny, huh? It is not because certain APIs are not available in Smartphone 2003, nor because Smartphone 2003 is "too small"...
The following .NET CF team blog presents an excellent table on what platforms can support .NET CF 2.0:
In short, .NET CF 2.0 is supported on:
- Pocket PC 2003 and 2003 SE
- Windows Mobile 5.0 PPC
- Windows Mobile 5.0 Smartphone
You even cannot find an installation .NETCFv2 CAB package for Smartphone 2003 platform.
Out of curiosity, I checked what .NET CF version are stored out of box for the following devices:
- Sprint PPC6700: 1.0.4292.00 (Windows Mobile 5.0 Pocket PC, OS Version 5.1.1700, Build 14352.0.1.0)
- Sprint PPC6601: 1.0.3316.00 (Windows Mobile 2003 SE Pocket PC, OS Version 4.21.1088, Build 14132)
- I-Mate SP3i: 1.0.3316.00 (Windows Mobile 2003 Smartphone)
Category: [Development Environment]