Hello Dhrubo!
I am following up with our conversation on April 15.
One of the strengths of the .NET Micro Framework is that the device will detect and warn users when a user tries to run a C# program that was written against an incompatible eMote API version.
In this case, I believe that you were helping other students who may have been referencing the current release version of the eMote interface in their example C# program, while they were also developing components with pre-release version 12.B1 of the eMote OS. That is, the students had an eMote .NOW board that was running a special OS build, but they had not updated their C# application to use the newer API that corresponded to the pre-release version.
Normal end-users may encounter a similar error if they try to compile a C# program or application note that was written for a different version of the eMote OS. C# applications must reference compatible eMote Interface API versions because the eMote Interface DLL may be expecting to access native system calls from a specific version of the eMote OS.
The eMote OS will write the message
ERROR!!!! Firmware version does not match managed code version!!!!
to the serial debug console when the eMote OS attempts to load a C# application that references an incompatible eMote Interface API. That is, the C# application may have been written and compiled using a different version of the DLL than what the eMote OS currently implements.
The easiest solution is to recompile the C# application with the version of the API that matches the device. Open the C# application's project solution in Visual Studio, locate the "Solution Explorer" pane, expand the "References" folder, click on incompatible assemblies, and delete the entries for incompatible DLL assemblies. Right-click on the References folder and add the assembly DLLs that are compatible with the desired version of the eMote OS. Rebuild the C# application and deploy.
Sincerely,
Michael