10

これはプログラミングの問題ではありませんが、プログラミングツールの問題です。

Visual Studio 2008 Team Edition(バージョン9.0と.NET 3.5 SP1)で、あるcsprojから別のcsprojに参照をコピーして貼り付けると([ソリューションエクスプローラー]ビューのコンテキストメニューを使用)、次のエラーが発生します。

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

これは私のマシンで発生し始めたばかりです。私はそれについてのこの記事を見つけることができるだけであり、それは解決策を含んでいません。

何か案は?

4

2 に答える 2

9

これは Google for などに表示されるナンバー 1 のヒットVS 2010 paste reference E_FAILなので、この回避策を共有すると思いました。

ソリューション エクスプローラーのコンテキスト メニューから参照のコピー/貼り付けを使用しないでください。

その代わり:

  1. コンテキスト メニューを使用してプロジェクトをアンロードし、参照をコピーします。
  2. プロジェクト ファイル (.csproj、単なる XML) を編集します。
  3. 関心のある参照を見つけて、<Reference>XML ノードをコピーします。
  4. プロジェクトをアンロードして参照をコピーします。
  5. プロジェクト ファイル (.csproj) を編集する
  6. 前の手順でコピーした参照を適切な場所に貼り付けます。<ItemGroup>のようなものを含むノードを探し、その<Reference Include="mscorlib" />すぐ上に参照を貼り付ける必要があります。
  7. 両方の .csproj ファイルを閉じて、変更したばかりのターゲット ファイルも保存します。
  8. ソリューション エクスプローラーのコンテキスト メニューから両方のプロジェクトを再読み込みします。

参照がターゲット プロジェクトにコピーされます。

どうやら、ここで説明されているように、環境変数を使用する参照には少なくとも問題があるようです(ただし、私の場合、環境変数を使用しない参照と Visual Studio 2010 で問題が発生していました...)

于 2012-06-20T18:52:06.773 に答える
5

ええ、E_FAIL は最も一般的な COM エラーです。これは文字通り、返された COM 関数が失敗したことを意味するためです。どういうわけか、Visual Studio 2008 の COM オブジェクトがどこかに破損していると思います。

Visual Studio 2008 を再インストールして、すべての tlb とオブジェクトを再登録しようとしましたか?

于 2009-09-29T07:35:37.703 に答える