My program was failing with MissingMethodException (Method not found: 'Void System.Windows.Forms.FileDialog.set_AutoUpgradeEnabled(Boolean)'). This happened only on Windows XP and not all of them.

Culprit was obvious. I used OpenFileDialog and I decided to set AutoUpgradeEnabled property. Only problem was that this property was introduced with .NET Framework 2.0 SP1. Notice this service pack part - that property does not exist if you have version without it.

Solution is easy if you are trying setting this property to true - that is default value anyhow. If you want to set it to false, just use reflection:

var property = typeof(FileDialog).GetProperty("AutoUpgradeEnabled");
if (property != null) { property.SetValue(openFileDialog1, false, null); }

Notice that this property is shared among other controls inheriting from FileDialog (e.g. SaveFileDialog) so same thing applies to them also.

Leave a Reply

Your email address will not be published. Required fields are marked *