11.3. 为什么当设备上的Toolhelp.dll文件丢失后,调试就会失败?
Symptom: After F5, all the files including the application executables and .net精简框架 cab files are copied to the device, and the IDE reports success on launching the application, but nothing is launched on the device. If you check the \windows folder of the device, toolhelp.dll does not exist.
Cause: Some device images may not include toolhelp.dll which is required by SDE debugging.
Workaround: Copy toolhelp.dll from Windows CE SDK to the \windows folder of the device. This file can be found in the corresponding target directory for each device.
For example, for an ARM device: "<VSROOT>\CompactFrameworkSDK\WinCE Utilities\ToolHelp\WinCE4\armv4".
If you do not have this file it can be downloaded from the following link:
11.4. 为什么当网络协议数超过50个的时候,就不能向设备发布程序?
Symptom: The "deployment error" message box occurs on Ctrl-F5 or F5. Running EnumProtocols.exe lists more than 50 protocols. (EnumProtocols.exe can be found in the WinCE utilites directory: "<VSROOT>\CompactFrameworkSDK\WinCE Utilities\EnumProtocols"). If you do not have this file it can be downloaded from the following link:
Cause: It is a known issue that the .NET Framework method System.Net.Dns.GetHostName throws an exception when there are more than 50 network protocols installed on the current machine. The method is called by ConMan and the exception causes failure of the ConMan transport initialization.
Workaround: Uninstall the network protocols that are not actually needed. One way to do this is to go to Device Manager (Right-click on "My Computer", select Properties->Hardware and press the "Device Manager" button) and remove unused entries under "Network adapters". Another way is to uninstall applications that have installed protocols. Those applications can be found from the output of EnumProtocles.exe.
11.5. 为什么卸载ActiveSync后,不能通过ActiveSync向设备发布?
Symptom: The "deployment error" message box occurs on Ctrl-F5 or F5 after ActiveSync has been uninstalled. Uninstalling ActiveSync typically happens when the user upgrades ActiveSync, e.g. from version 3.5 to 3.6.
Cause: ConMan relies on some registry values under "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services\ProxyPorts" for deployment and debugging through ActiveSync. These registry values are removed when ActiveSync is uninstalled.
Workaround: Reinstall or repair Visual Studio .NET 2003.
A simpler fix is to import ProxyPorts.reg which can be found in the WinCE utilities folder: "<VSROOT>\CompactFrameworkSDK\WinCE Utilities\WinCE Proxy Ports Reg" . If you do not have this file it can be downloaded from the following link:
The device may need to be un-cradled/re-cradled or soft rebooted to make the fix take effect.
It is recommended that users never uninstall ActiveSync. To upgrade ActiveSync, you should directly install the new version which will correctly override the old one.
11.6. 为什么本地化的机器名或用户名或导致向设备发布程序的失败?
Symptom: When the machine name or the logon user name contains any character that is not on the current code page or below ASCII value 0x20, deployment to devices fails while deployment to the Emulator works fine.
Cause: ConMan security authentication internally uses the machine name and user name in the ASCII form which is not able to handle characters in the categories described above.
Workaround: Do not use characters described above in the machine name or the user name. If the user is not clear what characters belong to those categories, it is always safe to use just English alphabetic letters and numbers.
11.7. 为什么当前用户不属于Administrators组的时候,不能向设备发布程序?
Symptom: If the current logon user is not in the Administrators group, deployment to devices always fails even though the user is in the Visual Studio Developers group and the Debugger Users group. On the other hand deployment/debugging to the Emulator works fine.
Cause: During device deployment, the ConMan code internally opens a file in a mode that requires administrator privileges.
Workaround: Add the current user to the Administrators group or limit the deployment target to the Emulator only.
11.8. 为什么向Pocket PC或模拟器发布的时候出现 sharing violation 的错误?
Symptom: When deploying an application to a Pocket PC 2002/2003 device or Emulator, the deployment fails with an output message similar to "Could not write to output file 'SmartDeviceApplication1.exe' - Sharing violation". This usually happens after the same application has previously deployed to the same device or Emulator.
Cause: By default the X button on an application for Pocket PC 2002 or 2003 (not 2000) does not close the process. It only "minimizes" the application window. When the user tries to deploy the application again, the "minimized" instance will cause the sharing violation and fail the deployment.
Another possible cause is that the user has forcibly terminated a debug session in the middle.
Workaround: Make sure the application is really closed on the device or Emulator when deploying it again. To see running processes, go to Start->Settings->Memory->Running Programs on the Pocket PC. In case it is intended to have a button to really close an application, create such a button explicitly or set Windows Form's property Minimize Box to False so that the X button will become an OK button for closing the application. If the cause was the manual termination of a debug session, the device or the Emulator may need to be soft rebooted.
11.9. 为什么在.NET Server的计算机上第一次使用模拟器的时候,得到一个安全警告消息?
Symptom: When the Emulator is used for the first time after the installation of Visual Studio .NET 2003 on a .NET Server machine, a message box pops up titled "Security Alert – Driver Installation". The text of the message starts with "The driver software you are installing for: Virtual PC Application Services has been signed with Authenticode(TM) technology. The publisher's identity has been identified, and the driver has not been modified since it was published". Near the end, it says "However, this driver cannot be tested by Microsoft Windows Hardware Quality Labs to verify its compatibility with this version of Windows. … Do you trust this publisher and want to install the driver?"
Cause: Visual Studio .NET 2003 installs a Virtual PC Application Services Emulator driver which does not pass the validation of .NET Server's Driver Validation system.
Workaround: When the alert message comes up, click the Yes button. Otherwise the Emulator will not work.