Visual Studio 2017(15.9.13)で発生しています。ある程度大いC++プロジェクトをビルドすると、突然こんなエラーが出るようになりました。
1>------ ビルド開始: プロジェクト: , 構成: Debug Win32 ------ 1>エラー HRESULT E_FAIL が COM コンポーネントの呼び出しから返されました。 1>エラー:エラー HRESULT E_FAIL が COM コンポーネントの呼び出しから返されました。
一度このエラーが出ると、OS再起動、ソリューションクリーンアップとフルビルドしてもダメでした。Developer Communityにも報告されているので、そこそこ頻繁に出るようです。
developercommunity.visualstudio.com
Visual Studio 2019で同じソリューション開いても(toolsetやSDKはVS2017のままアップグレードしない)ビルドはできます。
最初についていた回避方法はこんなものでした。
- Developer Command Prompt for VS2017を管理者として実行する。
- "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PublicAssemblies"に移動する
gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll
と実行する
自分の場合、上記の方法では直らなくて困っていたんですが、先日あらたな回避方法が追加されて、これで直りました。
- ソリューションファイルのあるフォルダーにある.vsフォルダー(隠しフォルダーです)を削除
- bin/objフォルダーを削除
やっぱりVSが変な挙動する場合、.vsフォルダーを削除するというのが鉄板の回避方法のようです。拡張機能なら拡張機能のキャッシュフォルダーを削除する。