|
-
Mar 11th, 2011, 12:25 PM
#1
[RESOLVED] Dreaded clr20r3 System.InvalidOperationException on program start ONLY on Windows XP
I'm typing this up only to document it and possibly save others the three days of frustration and hell I had to go through. Because this unhanded exception was damned near untrappable (it happens on Form.Show(), but since my primary form was affected, I couldn't tell at the time), it's one I know I lost a lot of hair nailing down.
I have an office application. Standard fare utility program that grew to do lots of custom tricks for my place of business. Lots of database providers to pull data from various unconnected sources and crystal reports to make fancy reports from it all.
When I make a change or addition to it, it usually is only needed by one employee, so I only deploy the new version to one computer at a time. Recently, I had to reinstall the program to the whole company. Everything was going fine, until somebody who had a Windows XP machine tried to run it. It was giving a "clr20r3" "System.InvalidOperationException" on program boot. None of my Try-Catch blocks were catching it. Any Windows XP machine I installed it on was failing, and any Vista/Win7 machine had no issues at all.
I spent the next three days trying to catch what was causing it, pulling out references, reinstalling .NET. Searching for references to this error online was futile since System.InvalidOperationException is one of those ultra-generic errors that pop up for hundreds of oddball reasons.
Finally, by happenstance, I found the cause via a single, obscure post on TechArena by a poster with only that post to his name who decided to chime in with his two cents on someone else's System.InvalidOperationException problem.
About a month ago, I replaced the program icon with a new one. I made up a nice Icon, and compiled pre-sized versions of it into a proper .ICO file from 16x16 all the way up to 256x256. I replaced the program icon with it, the links to the shortcuts in the setup program, and the icon on the main form.
THAT was the bug. Because my .ICO file had sizes larger than 64x64, Windows XP couldn't handle it as a form icon! It works fine for the program icon and for the shortcuts, but the form icons MUST be 64x64 or smaller or the program will throw System.InvalidOperationException on Form.Show(). I didn't know this was the issue since this change was over a month old and I hadn't needed to upgrade a Windows XP machine in that time. Windows Vista and 7 can handle large icon files just fine!
Solution, I made a second, WinXP compliant icon just for the main form. Problem solved. My big icon is still used for my program and shortcuts, so they look great scaling to max size in Windows Vista/7 and XP no longer crashes with a cryptic error message.
So, I post my story for posterity. If it even helps one other person, then it will have been worthwhile.
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|