FolderBrowserDialogを表示すると、InvalidCastExceptionがランダムに発生します。また、多くのクライアントがこれを報告しています。
私はインターネット上で関連するものを見つけることができませんでした。誰かがこれを引き起こす原因/これを修正する方法を知っていますか?
私のコード:
using (FolderBrowserDialog fbd = new FolderBrowserDialog())
{
fbd.ShowNewFolderButton = false;
if (fbd.ShowDialog() == DialogResult.OK)
スタックトレース:
Error: System.InvalidCastException:
'Unable to cast object of type 'System.__ComObject' to type 'IMalloc'.'.
Stack trace:
at System.Windows.Forms.UnsafeNativeMethods.Shell32.SHGetMalloc(IMalloc[] ppMalloc)
at System.Windows.Forms.FolderBrowserDialog.GetSHMalloc()
at System.Windows.Forms.FolderBrowserDialog.RunDialog(IntPtr hWndOwner)
at System.Windows.Forms.CommonDialog.ShowDialog(IWin32Window owner)
at System.Windows.Forms.CommonDialog.ShowDialog()
編集:追加情報:VS2008デバッガーで実行している場合にのみこれを再現できました。
デバッガーが不足すると、64ビットWindows 7ではごくまれにしか発生せず(6か月に1〜2回発生)、再起動後に消えます。
クライアントは確かにデバッガーでアプリを実行していないので、デバッガーから確実に再現できます。