web-dev-qa-db-ja.com

デバッグ時にCOMコンポーネントVS2012の呼び出しからエラーHRESULT E_FAILが返されました

Visual Studio 2010から2012に移行したプロジェクトのデバッグに問題があります。デバッグに行くたびにエラーメッセージが表示されます。

「COMコンポーネントの呼び出しからエラーHRESULT E_FAILが返されました」。

ローカルIISサーバーでアプリケーションをコンパイルして実行すると正常に動作します-デバッグできません。

VS2012への移行以外の変更点は、ソース管理と問題追跡にTeam Foundation Serverを使用していることですが、それがどのように影響するかわかりません。

次のように絞り込むことができます

  • プロジェクトファイル-WebサイトプロジェクトとしてVS 2003から移行され、さまざまなバージョンを切り刻んで変更しました。
  • Crystal Reportランタイムライブラリ/その他のライブラリ

アイデアはありますか?

60
Matt

Csproj.userファイルを削除しましたが、うまくいきました。

他の場合には、このエラーを修正するために、プロジェクトプロパティの[Web]タブに移動し、[Visual Studio開発サーバーを使用]および[ポートの自動割り当て]をオンにします。その後、プロジェクトを再構築してVSを再起動する必要があります

33
Alejandro Haro

私は最近これをたくさん取得していますが、新しいファイルを作成し、コードを新しいファイルに移動して回避する必要があります。

しかし、私は迅速で簡単で痛みのない修正を見つけました。

私の特定の場合、ソリューションのsuoファイルを削除します(IDEで開いているファイルなどの情報だけを保存できるので、削除しても実質的な損害はありません)。私のファイルは破損しているように見えました(再起動時にIDEが開いているファイルを覚えていませんでした。サイズが1.7メガで、40プロジェクトソリューションでも一度に開くことがめったにありませんでした).

要約する:VSが閉じている間に.suoファイルを削除すると、デザイナーモードでwinformsファイルを開いていたE_FAILの問題が修正されました。

編集:

私は最近VS2017でこれをやらなければなりませんでしたが、別の理由で、ビルドに時間がかかり、デバッグセッションを停止するのに5分以上かかり、厄介なsuoファイルを削除してすぐに修正しました呼び出しの最初のポート。

53
Tim Hall

Visual Studio 2019のc ++プロジェクトでも同じ問題が発生しました。

次の解決策は私のために働いた:

  • Visual Studioを閉じます。
  • プロジェクトのルートフォルダーに移動し、.vsディレクトリを削除します。
  • Visual Studioを起動し、ソリューションを開きます。
  • これでビルドが機能するはずです。
25
datoml

WinFormsアプリでデザイナーファイルを開くときにこのエラーが発生したことを付け加えました。私の問題は、プロジェクト内の参照の1つがそれ自体を参照していることでした。どうやらこれはここで述べたように起こる可能性があります

https://social.msdn.Microsoft.com/Forums/office/en-US/00aede04-d8cd-4475-8114-4b4792261052/winforms-designer-error-hresult-efail-has-been-returned- from-a-call-to-a-com-component

参照を削除しましたが、正常に機能しています。

5
Sugat

多分 このページ が役立ちます:

シナリオ2:WebアプリケーションプロジェクトのデバッグIDEの作成中に、Microsoft Visual Studio 2010 ORがクラッシュします。この上記のエラーは、Visual Studio 2010のキャッシュが破損しているために発生します。問題を解決するには、以下の場所からプロジェクトキャッシュを削除するだけです。

C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplatesCache

C:\Program Files(x86)\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplatesCache

次に、devenv.exe /setupを実行してキャッシュを再構築します。

4
Simon

ドッ! IIS Webサイトに接続しようとしたときに他の誰かがこのエラーを受け取った場合。

ホスト名が正しいことをトリプルチェックします。(/)を忘れていました(例) http://my.testsite.com

私がやったようにVisual Studioを再インストールする前にこれを試してください。

4
Markive

デッドスレッドを復活させて申し訳ありませんが、VS2017でプロジェクトテンプレートキャッシュとアイテムテンプレートキャッシュフォルダを削除してこれを解決しました

%appdata*\Local\Microsoft\VisualStudio\[BUILD]

次に、Visual Studioの設定をリセットします

Tools>Import and export settings>reset all settings

また、「すべてのプロジェクトの軽量ソリューションのロード」をオフにすることも役立ちます。

4

これは私の問題を解決しました:

スタート—>実行—> regsvr32 %SystemRoot%\System32\msxml3.dll

スタート—>実行—> regsvr32 %SystemRoot%\SysWOW64\msxml3.dll

この前に、私はサイモンから上記の解決策を試みましたが、私にはうまくいきませんでした!

おそらく、これら2つのソリューションを組み合わせることでうまくいきました!

3
Besnik Kastrati

VS2013からVS2015にアップグレードした後、同じ問題が発生しました。

私が働いていたプロジェクトはそれ自体を参照していました。 VS2013は気にしませんでしたが、VS2015は気に入らなかったため、そのエラーが発生しました。参照を削除した後、エラーはなくなりました。それを見つけるのに約4時間かかりました...

2
yiev

上記のすべての解決策を試してみましたが、うまくいきませんでした こちら

  • に移動してActivityLog.xmlを開きます

    C:\Users\{UserName}\AppData\Roaming\Microsoft\VisualStudio\15.{Id} 
    
  • エラーがそれを示しているかどうかを確認します

    "CreateInstance failed for package 
    [ReferenceManagerPackage]Source: 'mscorlib' Description: Could not load type 
     'Microsoft.VisualStudio.Shell.Interop.' from Assembly 
     'Microsoft.VisualStudio.Shell.Interop.11.0' 
    
  • 次に、VSのコマンドプロンプト(管理者モード)で次のgacutilコマンドを実行します。

    1. 案内する

      C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PublicAssemblies   
      
    2. gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dllを実行します

2
dawncode

最新のWindows 10 SDKをインストールした後、エラーが発生しました。 SDK 8.1を使用してC++プロジェクトをビルドしているときにエラーが発生しました。プロジェクトのプロパティで、最新の10 SDKに切り替えます。再構築します。うまくいきました。 8.1に戻りました。再構築します。エラーなし。

1
Mike L

特定のボタンをクリックしながら別のフォルダーを開く簡単なプログラムを作成しました。ファイルのプロパティを「コンテンツ」および「新しい場合はコピー」として作成し、展開しました。したがって、他のソフトウェアにexeファイルをインストールした場合、実際にはすべてのリソースがインストールされ、プログラムが正常に実行されます。だから、これは私のプログラムについてのすべてです。チェックするためにプログラムを実行すると、これを時々開発しているときに、エラーが表示されました

"HRESULT E_FAILがCOMコンポーネントの呼び出しから返されました"

デザイナービューを開くことができませんでした。しかし、どういうわけか私は簡単な解決策を得ました。それが他の人のために働くかどうかはわかりません。

解決策は次のとおりです。

アプリケーションフォルダー全体を別の場所にコピーします。そこからアプリケーションファイルをクリックします。それは単なるコピーであり、デザイナーが表示されないため、機能しません

  1. ソリューションエクスプローラーからform1.vbを削除します(または、開発中に変更された場合は別の名前になる場合があります)
  2. ソリューションエクスプローラーで、右クリック>既存のアイテムを追加>フォルダーのコピー元のForm1.vbファイルを参照します(元の場所)
  3. 新しい場所でプログラムを実行します。それが動作します

このソリューションの問題は、何かを追加する場合、プログラムの実行後に同じエラーが見つかった場合、別の場所にあるアプリケーションフォルダー全体を再度コピーして、上記の手順に従う必要があることです。

1
Tousif Ahmed

HRESULT E_FAILがCOMコンポーネントの呼び出しから返されました

私の場合、ソリューションに同じGUIDの異なるプロジェクトがあったためです。 (プロジェクトはコピー/貼り付けによって作成されました)

0
Alix

最近、ローカルIISで実行されているASP.NETアプリでこの問題を修正しようとして約3時間を費やしました。 「アプリケーションルートURLをオーバーライドする」を指定し、http://my.dev.com/などのスラッシュ(/)で終わるURLを指定しました。プロジェクトオプションを保存して戻った場合、オーバーライドされたルートURLがhttp://http://my.dev.comとして表示されます。最後のスラッシュを削除すると、正常に動作し始め、エラーはなくなりました。

0
Richard Edwards

私の場合、このメッセージはVisual Studio 2013のIntellisenseによって発行されるようです。以下のスクリーンショットは、顧客プロジェクトの最初のロード後のVisualStudio 2013の下部のエラーを示しています。 VS2013 "ERROR-HRESULT-E Screenshot

このエラーの原因をグーグルで調べ始め、上記のようにuser.vxprojファイルを削除してみることにしました。しかし、プロジェクトが問題なくビルドされ、プロジェクトを終了して再ロードした後、エラーが表示されなくなりました。したがって、私の場合、プロジェクトを顧客のディレクトリツリー構造からローカルの開発ディスクツリー構造に移動したために何らかの破損が発生したと考えています。ここで重要なのは、私の場合、問題は一時的なものでした。何もしなかったので、問題は解決するように見えました。 (私は何も修正しなかったので、それは戻ってくるかもしれないので、一般的には望ましいことではありません)。

0
Ross Youngblood

私はVisual Studio 2017で同じ問題に直面しました、次の手順に従ってください:

  1. スタート—>実行—> regsvr32%SystemRoot%\ System32\msxml3.dll

  2. スタート—>実行—> regsvr32%SystemRoot%\ SysWOW64\msxml3.dll

  3. プロジェクトをきれいにします。

  4. Visual Studioを再起動します。

    ステップ1と2は、Besnik Kastratiの投稿からコピーされました。

0
Salman Saleh

エラーの正確な再現手順についてはわかりません(HRESULT E_FAILがCOMコンポーネントの呼び出しから返されました)が、解決策は次のとおりです。

  1. Visual Studioを閉じて、コントロールパネルから修復します。
  2. システムを再起動

再起動後、エラーはなくなりました。

0
Meghan N.

SSDT 2017でSSDT 2013(TFS)からSSISプロジェクトを開いてOracle用Attunityドライバーをテストしようとしたため、この問題が発生しました。新しいSSISプロジェクトではAttunityドライバーは正常に動作しますが、アップグレードされたSSISプロジェクトでは接続をテストしてみます。解決策は、古いプロジェクトを修正することです。

0
Tahir
  1. X86アーキテクチャまたは64ビットシステムで開始された開発を追加すると、32ビットシステムでも実行されます。
  2. ただし、32ビットシステムで開始された開発で追加し、64ビットのソースコードを変更する場合注:サーバーシステムでSAPライセンスに接続している場合、ポートを設定し、サービスマネージャーを介してサーバー名を設定します。エラー:

接続コンテキスト:-CLSID {632F4591-AA62-4219-8FB6-22BCF5F60090}のコンポーネントのCOMクラスファクトリの取得は、次のエラーのために失敗しました:80040154クラスが登録されていません(HRESULTからの例外:0x80040154(REGDB_E_CLASSNOTREG))。

0

問題を解決する手順:

1.VS 2012で管理者モードでソリューション/ Webアプリケーションを開きます。

2. IISに移動し、アプリケーションの設定をメモします(例:仮想ディレクトリ名、物理パス、認証設定、使用されているアプリケーションプール)。

3.デフォルトWebサイトからアプリケーションを削除(右クリックして[削除]を選択)します。 IISを更新します。

4. VS 2012に戻り、Webアプリケーションの設定を開きます(右クリックしてプロパティを選択します)。

5. [Web.Inサーバー]セクションを選択し、[ローカルIIS Webサーバーを使用]が選択されていることを確認します。

6. Project Urlテキストボックスに、アプリケーションパス(http:// localhost/Application Path)を入力します。 [仮想ディレクトリの作成]をクリックします。

7. IISに移動し、手順2でメモした設定を適用します。IISを更新します。

8. VS 2012に移動し、このプロジェクトをスタートアッププロジェクトとして設定し、適切なページをスタートアップページとして設定します。

9.実行ボタンをクリックして、デバッグモードでプロジェクトを開始します。

これにより、VS 2010から2012に移行されたWebアプリケーションの問題が解決されました。これは、特定の問題を探している人に役立ちます。

私のマシン構成は:IIS 7.5.7600.16385

VS 2012 Professional

Windows 7 Enterprise(バージョン6.1-ビルド7601:Service Pack 1)

0
Bhushan

私の問題は、Win10 appxmanifestファイルを開くことで明らかになりました(しゃれはありません)。 Windows 10ツールとSDKをインストールするだけ([新規]-> [プロジェクト]-> [Windowsの選択]-> [ツールのインストール]に移動)で修正されました。

0

私はこの答えを見つけ、Ctrl + Alt + Jをクリックして(...)をクリックします参照(...)からDLLを追加できるようになりました。これは緑色のプラス「+」ボタンです)

0
Behnam Gorbani

ComponentModelCacheフォルダーを削除して同じ問題を修正しました

  1. Visual Studioを閉じます(まだ絶望していない場合)
  2. ファイルエクスプローラーウィンドウを開き、AppDataフォルダーに移動します。そこに着くには:
    1. 検索バーに%APPDATA%/..と入力してEnterキーを押します
    2. または、C:\Users\\AppDataに移動します
  3. Visual Studio 2013のLocal\Microsoft\VisualStudio\<version> where 12.0に移動します。
  4. ComponentModelCacheフォルダーを削除します。

ここから: http://withmartin.net/how-visual-studios-component-model-cache-can-be-a-pain/

0
user2592899

これは、TFSビルドサーバーで何度か発生します(ゲートチェックイン)。ワークスペースフォルダーについてです。理由はわかりませんが、ワークスペースフォルダーのアクセスが破損することがあります。問題を修正するために私がやっていることは、TFSビルドワークスペースを削除し、関連するワークスペースフォルダーを削除することです。 TFSビルドマシンは、それ自体の新しいワークスペースを作成し、問題は修正されます。

Tousif Ahmedのソリューションは、ローカルビルドで動作するはずです。アプリケーションフォルダーを別の場所にコピーすると、TFSビルドマシンで実行しているのと同じことが行われます。

0
Levent Sezer