Troubleshooting Deployment Problems
Overview of the Deployment Process
When deployment of your .NET Micro Framework application to a hardware device fails, it is helpful to know all the steps in the process so that you know where to look for the problem. Below is a brief outline of what happens during deployment, provided that your project has built successfully.
- Visual Studio tries to locate the device transport specified on the properties page (emulator, serial port, TCP/IP or USB).
- If the transport is located successfully, Visual Studio tries to open it.
- If it opens successfully, Visual Studio tries to connect with the device.
- If a connection is successfully established, Visual Studio reboots the device into Tinybooter state.
- If the reboot works properly, Visual Studio copies over all the assemblies your application needs to the device.
- Locate the device transport for the project.
- Open the transport.
- Connect to the device.
- Reboot the device into a CLR state appropriate for debugging.
Often, you have deployed your application in order to debug it. In that case, the Visual Studio debugger now launches and requests a debugging process. The following steps must be completed before the local debugging proxy process is ready to mediate debugging on the device:
If these steps complete successfully, debugging can procede normally, unless the connection to the device is lost for any reason.
Troubleshooting Your Deployment
If you’re deploying your application with Visual Studio and are having problems (such as getting a "Deploy failed" error message on your status bar), here are a few steps you can try to help resolve the issue.
- Verify the physical connection.
- Make sure that the physical connection between your computer and device is working, using the correct cable connection, and using the correct port connection for debugging.
- Check that the cables are of the correct type. Null modem and crossover cables may be required.
- Many devices have multiple I/O ports that could be connected to a computer. Verify that you are using the connection or your device that is configured for use in application deployment and debugging. The device documentation should list the correct port to use.
- If you are using TCP/IP, ensure that the device is on the correct subnet and that communications are properly routed between the devices.
- Check the Project Properties dialog.
- From the Project menu, open the Properties dialog box and choose the MicroFramework tab. Make sure that the Transport and Device settings are correct. If you are using TCP/IP, make sure that the IP address is properly entered in the Device box.
- Restart or reset the device.
- If you are using TCP/IP with DHCP, you may need to check for a newly-allocated IP address.
- Restart Visual Studio.
- Close Visual Studio and any related processes and then open Visual Studio again.
- Ping the device from the MFDeploy tool.
- Run MFDeploy, select the correct port, and click on the Ping button to determine whether the Micro Framework is running and communicating through the designated port. If you are using a COM port, failure can also indicate that another process on your computer is using that port.
- Clear the deployment and persistence sectors.
- Run MFDeploy, select the correct port, and click on the Erase button to clear all assemblies from the device.
- Reduce the size of your deployment.
- If you have large resources in your project, try reducing their size, as they may exceed the capacity of the device.
- Verify that the version of the Micro Framework SDK and the firmware on your device are compatible.
- Check with the manufacturer of the device to make sure that you are using a firmware release compatible with this version of the SDK. You may need to download and flash new firmware and/or download a new version of the .NET Micro Framework SDK.
- Verify that you have a Release build of the Micro Framework SDK, rather than an RTM build.
- The Debug and Release build types support deployment, but the RTM build type do not.
The .NET Micro Framework Porting Kit provides three build types, as described in the following tables.
Build type Description Debug The build contains full debug symbols for the CLR and managed libraries. This build is used only by equipment manufacturers when porting the Micro Framework to their devices. It is not normally supplied to application developers. Release The build contains almost no debug symbols, but allows for deployment and application testing. Equipment manufacturers may supply application developers with either Release or RTM builds. RTM RTM builds are intended for shipping finished applications. Diagnostic functionality for the common language runtime (CLR), such as the Microsoft.SPOT.Debug class, is disabled. Deployment using Visual Studio is disabled.