Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5175622
  • 博文数量: 1696
  • 博客积分: 10870
  • 博客等级: 上将
  • 技术积分: 18357
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-30 15:16
文章分类
文章存档

2017年(1)

2016年(1)

2015年(1)

2013年(1)

2012年(43)

2011年(17)

2010年(828)

2009年(568)

2008年(185)

2007年(51)

分类: 嵌入式

2010-08-18 17:46:29

In the recent past I have read deployment problems reported by users in smart device development forums.  It was my  observation that majority of the issues reported do not contain enough information to troubleshoot the problem.   This will result in few email exchanges back-and-forth which is frustrating to both the parties involved. It is like suggesting a solution based on the symptoms described by the user.  The same symptom could be caused by multiple reasons and to zero-in on a cause one has to perform additional tests.  Since we will not have access to user's machine, there are few things that users can try out to troubleshoot the deployment problem. 

1. Try to identify in which phase of F5 the failure has occurred

Those who read my first blog post on deployment essential might recall that F5 = Build + Connect To Device + Deploy + Debug Launch.  Most users press F5 and in some cases based on the error message it may not be possible to identify the phase in which F5 has failed.  Trying out the individual operations that make up F5 will let us narrow down the phase.

  • Build failures are the result of compiler/linker errors. 
  • One can check whether connection to device/emulator is successful, by choosing "Tools->Connect To Device".
  • To check any error encountered during deployment phase choose "Build->Deploy Solution".
  • To debug launch the application, press F5 after performing the above three steps.

2. Few things to check if connectivity to device has failed

  • Activesync 4.0 is installed if connecting over AS
  • Device security configuration allows development with VS.  Please read my blog post on deployment essentials part  II for more details. https://blogs.msdn.com/sivarv/archive/2005/09/20/471863.aspx
  • If TCP is the transport chosen for emulator, make sure that NE2000 network adapter is enabled
  • Whether specific to an emulator or a device?  Try a couple of emulator or devices if at hand.
  • Whether launch of emulator has failed.  In some cases deleting emulator local saved states solves the problem.
  • Some times soft resetting the device will solve the problem.

3. Few things to check if failure has occured during deployment phase

  • Device has enough free space
  • In case of native projects, dependent dlls are in "\windows" directory
  • In case of managed projects, NetCF installastion will fail if cab installer (wceload.exe) is missing on the device
  • Make sure that a previous instance of app is not running.  This will result in deployment failure with sharing violation.  Running app could be killed using remote process viewer.
  • Whether specific to an emulator or a device

4. Few thigs to try if debug launch has failed

  • Just launching the app instead of debug lauching.  This can be done by pressing Ctrl+F5.
  • If Ctrl+F5 too fails, try to launch the app manually on device/emulator
  • In case of native projects, make sure that project target platform/cpu and connected device match.
  • Code signing might be required in some cases particularly with Smartphone.  Please read my blog post on deployment essentials part II for more details.
  • Whether specific to an emulator or a device?

5. What if you had tried all of the above and still have no clue to troubleshoot the problem?
Send a mail to smart device development forum describing the problem you are facing along with the following details

  • Version of VS (could be found by choosing "Help->About")
  • Whether previously had a older version of VS2005 and upgraded to RTM
  • Whether using VS2003 and VS2005 side by side
  • Project type and any specific project properties (un)set
  • At what phase of F5 the failure has occurred and the things you tried.
  • Whether the problem is specific to an emulator or  a device
  • Whether the problem is specific to a project type or with all projects.  For example, the problem could be reproduced only with managed projects and not with native etc.

This will greatly help in quickly identifying the cause of a problem.

阅读(777) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~