Using a Windows CE 6.0 device to deploy a C# application using Visual Studio 2005. The device is specified as Windows CE 5.0
in Visual Studio. VS2005 does not have a smart device option for Windows CE 6.0
.
The application deploys fine (but with a post-deploy error) and runs ok. Debugging does not work. Most of the time, but not always, the following error occurs during deployment:
Post-deploy error 0x00000001 returned after calling '\Windows\wceload.exe /noui \Windows\NETCFV2.wce5.armv4i.cab'.
When VS2005 asked whether to continue, choose to continue and the application runs fine. Try and deploy with debugging, and the application runs but breakpoints are not hit as "no symbols are loaded".
On the device itself, a log file Microsoft .NET CF 2.0.LOG.TXT
appears in the root of the flash drive with some interesting entries (timestamps have been removed):
...
Opened CF registry key OK.
Looking for upgradeable installations for version '2.0.6129.00'
Got version value '2.0.7045.00'
Upgradeable installation '2.0.7045.00' detected.
Downgrade attempt detected as newer version '2.0.7045.00' has been found in RAM.
Record '2.0.7045.00' preserved because this version is newer.
Got version value '3.5.7338.00'
Side by side version '3.5.7338.00' found and skipped.
CF registry key closed.
Installation can't continue as newer version detected.
...
Through the Windows CE File Explorer, when C:\Windows\NETCFV2.wce5.armv4i.cab
is double-clicked the following message is displayed:
Microsoft .NET CF 2.0 is already installed. Re-install?
Click OK
and then an error is displayed:
A later version of the .NET Compact Framework is already installed. If you want to install this version, first remove the existing version.
In the Windows CE Control Panel\Remove Programs, the following 3 entries are displayed:
Microsoft .NET CF 1.0 ENU-String Resource
Microsoft .NET CF 2.0
Microsoft .NET CF 2.0 ENU-String Resource
I am reluctant to uninstall, then re-install .NET CF 2.0 as this might brick the device.
My questions are:
- Why is .NET CF 3.5 mentioned in the log file?
- Could the device think .NET CF 3.5 is installed when it is not? The device was provided by a German manufacturer whom I understand mostly supplies installations with .NET CF 3.5 for which they recommend using Visual Studio 2008.
- What registry key holds the .NET CF version details referred to in the log file? Can that registry key be manually modified to get around the error "Installation can't continue as newer version detected."?
- Is there a way to get debugging working from VS2005 to Windows CE 6.0?
Thanks in advance for any help or advice you may be able to offer.