1

Visual Studio 2008を使用して、Visual Basicで標準のファイル保存ダイアログボックスを開こうとしたときに、これに最初に遭遇しました。これまでのところ、無駄な検索を行った後、これを回避してきました。保存/開くダイアログを引き起こすアクション(例:ctrl-O)も失敗することがわかりました。私はもっ​​と検索しましたが、それを修正する方法がまだわかりません。

私が知っていること:これはVisual Studioのエラーではなく、他の多くのアプリケーションで発生する可能性があるようです(これが、検索が煩わしい理由です)

これは.NETまたはCOMに関連しており、運が悪かったので.NETをすべて再インストールしようとしましたが、COMをいじくり回したことはなく、それが何であるかさえわかりません。

何かが欠落しているか、置き忘れているか、DLLバージョンの問題である可能性があります。

VS2008、MS Office(1つの結果として提案された)、またはその他の大きなアプリケーションのアンインストールには本当に対処したくありません。

4

4 に答える 4

2

ここでの根本的な問題は、CoCreateInstance が失敗していることです。デバッガーをアタッチして CoCreateInstance を中断しないと、問題の原因を突き止めるのはかなり困難になります。これを行うために時間を費やしたとしても、エラーを修正できる可能性は低いです。

再インストールは最後の手段であることに同意します。ただし、その中間の手順として、インストールの修復を試みます。VS セットアップ ディスクを再挿入する場合、オプションの 1 つはインストールを "修復" することです。このオプションを取得するには、[プログラムの追加と削除] を実行する必要がある場合があります。

修復は、アンインストール/再インストールよりもはるかに高速であり、この特定の問題を解決する可能性が非常に高くなります。

編集

OPは修復が成功したと報告しましたが、エラーを修正しませんでした。イベント ログをチェックして、このエラーに対してより具体的なエラーが生成されているかどうかを確認できますか?

于 2009-03-09T02:51:23.263 に答える
1

私はVS 2008で同様の問題に直面しましたが、幸いなことに以下の解決策で解決されました。これを試して!!

devenv.exe を見つけます。右クリック>プロパティ>ビジュアルテーマオプションを無効にするのチェックを外します

于 2010-03-01T10:03:31.283 に答える
1

つまり、誰かが、どこかで、自分の仕事をする必要がある (と考える) オブジェクトを CoCreate しようとしているのです。これは、Visual Studio オブジェクトである場合とそうでない場合があります。これは [保存/開く] ダイアログに表示されるため、シェル オブジェクトである可能性が非常に高くなります。

最も可能性の高い説明は、オブジェクトのレジストリ エントリが何らかの方法で壊れているか、オブジェクトをエクスポートする dll が何らかの方法で壊れていることです。後者の場合は、完全に欠落しているか、何らかの理由で単に状態が悪い可能性があります。

試してみることができることの 1 つは、可能性の高い候補 DLL で regsvr32 を実行することですが、それは暗闇での撮影に過ぎません。

もう 1 つのより高度なオプションは、デバッガー (ntsd や windbg など) を Visual Studio プロセス自体にアタッチし、システム dll の CoCreateInstance() にブレークポイントを設定することです (ヘッダー ファイルで正確な署名を確認してください—他の何かに #define されている可能性があります)。次に、CoCreateInstance() に引数として渡すオブジェクトの GUID を取得します。これをレジストリ (またはこの問題を抱えていない友人のレジストリ) で調べると、どの DLL をいじる必要があるかがわかります。

于 2009-03-09T01:23:08.670 に答える
0

チェックを外してもうまくいきDisable Visual Themesませんでしたが、XP互換モードで実行すると修正されました。問題はdllが見つからないことだと思います。

于 2010-04-28T18:42:10.577 に答える