0

I got this err msg:

Exception: An error message is available for this exception but cannot be displayed because these messages are optional and are not currently insalled on this devcice. Please install 'NETCFv35.Messages.EN.wm.cab' for Windows Mobile 5.0 and above or 'NETCFv35.messages.EN.cab' for other platforms. Restart the application to see the message.

I searched my HD in vain for that file, binged it (bang it?), and was able to find it here:

http://www.codeplex.com/Download?ProjectName=beyondpod&DownloadId=29539

But where on my device do I need to install it for it to be found? On the root, or in the folder where the app lives? Do I just copy it over, or is there something else involved?

UPDATE

This: http://msdn.microsoft.com/en-us/library/bb986876.aspx says "The default location is C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\Diagnostics." but my device has no such path. The closest I can find are:

Computer\DuckbilledPlatypus's Device 2\\\Windows\SQLCE 2.0

-and:

Computer\DuckbilledPlatypus's Device 2\\\Windows\NETCFKeys

UPDATE 2

I copied the cab (maybe I should call it a deathcab, although I wouldn't call myself a cutie) onto the "root" of the device and into the folder where the app lives, but I still get the same err msg about not being able to display the err msg. IOW: Help!

UPDATE 3

Even after trying the fix here: http://blogs.msdn.com/b/martijnh/archive/2008/01/03/fixing-exception-messages-on-the-net-compact-framework-3-5.aspx (changing the name of one of the files inside the deathcab) I get the same old long-donkey err msg that is probably much longer than the one that is being suppressed.

UPDATE 4

Reading the fix at http://blogs.msdn.com/b/martijnh/archive/2008/01/03/fixing-exception-messages-on-the-net-compact-framework-3-5.aspx a little more carefully, I see that somebody said they had to add System.SR.dll as a project reference. When I try that, I get, "A reference to '\System.SR.dll' could not be added. This is not a .NET assembly.

Argggghhhhhhhhhhhhhhh!!!!!!!!!!!!

UPDATE 5

By "run it" I assume ctacke meant 2-click it (the cab file). What that does is bring up the files contained in the cab: _setup.xml as well as four very funkily named files. 2-clicking _setup.xml invoked a warning msg about a potentially harmful (xml) file, but I boldly went ahead (hey, it's not my computer). It seemed to do something (no confirmation message, though). The XML that opened when 2-clicking _setup.xml indicated one of the funkily-named files would be renamed to System.SR.dll (the person/people who did that manually must have experienced had some failure event). Attempting again to add System.SR.dll as a reference to my project seemed to work (at least there was no err msg; and System.SR.dll is much smaller than the renamed funkily-named file). HOWEVER, I still get the same dad-blasted non-err msg when I run my app! What's the use of jumping through that hoop if there's fire on the other side, too?

I did just notice, though, that the non-err msg has this emblazoned across its title bar: System.InvalidOperatio..." I don't recall seeing that there before; that is to say, I didn't notice it. Still, without seeing the rest of the msg, I'm still pretty much in the epitome of opaqueness.

UPDATE 6

Aha! Finally got it to work: Not only did I have to add it as a reference to my project (actually, perhaps that's not necessary), I had to copy the new slimmer version of (91KB compared to 338) onto the handheld device, both at the "root" and in the folder where the app lives. I don't know which of the two are necessary, and don't really care.

B. Clay Shannon-B. Crow Raven
  • 8,547
  • 144
  • 472
  • 862
  • You don't just copy the CAB over, you copy it and run it so it will install the resource DLL on the device. – ctacke Mar 21 '13 at 21:29
  • Answered above in Update 5. – B. Clay Shannon-B. Crow Raven Mar 21 '13 at 21:50
  • Um, you run the cab file *on the device* not the PC. No need for the reference, the CLR will find it once installed. – ctacke Mar 21 '13 at 22:19
  • The PC has a connection to the handheld in Windows Explorer which allows me to affect the handheld from the PC. IOW, I *did* do it on the handheld, in a virtual kind of way, it's just that I used Explorer in Windows 7. And at any rate, it worked, once I got System.SR.dll copied to where it needed to be. – B. Clay Shannon-B. Crow Raven Mar 21 '13 at 22:32
  • That's the problem. You must *execute* the CAB on the target, just as you would an application. It causes the cab installed to expand and install the proper files. If it ends up showing the contents, then it's executing on the desktop, which is not what you want. What you have now will work, but it's fragile and not easily repeatable across developers. – ctacke Mar 21 '13 at 22:53
  • Isn't what I did, in effect, executing it on the handheld? I just happened to be manipulating the handheld from Windows Explorer on the Windows 7 desktop machine rather than on the handheld's copy of Windows Explorer. I don't see why it would make a difference. – B. Clay Shannon-B. Crow Raven Mar 21 '13 at 23:33
  • No, it's not at all the same. To execute it *on the device* you need to put it on the device then run it *from the device* Explorer does not pass execution commands. Double-clicking it on the desktop simply pulled it back across the wire and opened it on the PC. Way different behavior, way different result. – ctacke Mar 22 '13 at 01:56
  • Clay, it is a good idea to store files like that on your device's Flash Storage (if it has it). Then, when someone forgets to charge your device, the battery goes dead, and your OS boots back up to the initial state, most of your files required to get back to Square 1 will still be in Flash, making quicker installs. –  Mar 22 '13 at 14:10

2 Answers2

2
  1. Clay should have this, but for completeness sake, install on your developer computer Windows Mobile 6 SDK and 6.5.
  2. On your computer go to C:\Program Files (x86)\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\Diagnostics (i.e. where you installed the SDK) (remove the (x86) for 32 bit only machines)
  3. Copy NETCFv35.Messages.EN.cab to your handheld
  4. On the handheld click the CAB and the follow the installation.
robor
  • 2,969
  • 2
  • 31
  • 48
  • Thanks, but since it's working (having simply copied System.SR.dll to the handheld via Windows Explorer), I'm going to leave well enough alone. The whole "framework" of this project is rickety already - I have to use .NET 1.1, I have to develop from a Windows XP Virtual Mode, etc. I have no Program Files (x86) on the XP Mode, and I'm not going to "mess with things" any more than I have to - i'ts like putting blocks atop a toy tower - any false move and the whole thing could come clattering down. – B. Clay Shannon-B. Crow Raven Mar 22 '13 at 15:11
0

Finally got it to work: Not only did I have to add it as a reference to my project (actually, perhaps that's not necessary), I had to copy the new slimmer version of (91KB compared to 338) onto the handheld device, both at the "root" and in the folder where the app lives. I don't know which of the two are necessary, and don't really care.

What a hassle! That kind of rigamarole makes me feel like Rodney King in L.A.

B. Clay Shannon-B. Crow Raven
  • 8,547
  • 144
  • 472
  • 862
  • 1
    All that long text for simple issue. The msgbox clearly states what file to install. You code is running on device and needs a msg DLL. VS states the name of the cab to install. Every win mobile developer should know that a cab has to be copied to the device and then tapped withing mobile file explorer. To find the right cab file on your PC you just needed to search for it below ProgramFiles dir on PC and then use your brain to choose the Compaft Framework one. This question and it's update confuses beginners and experts. – josef Mar 22 '13 at 04:46
  • If every developer knew what they were supposed to know, there would be no use for Stack Overflow. And, besides, I don't consider myself a Win Mobile developer. – B. Clay Shannon-B. Crow Raven Mar 22 '13 at 15:13