2009-09-22 379 views
8

我知道這不是一個編程問題,但它是一個編程工具的問題。錯誤HRESULT E_FAIL粘貼在Visual Studio中的引用

在我將一個csproj的引用複製並粘貼到另一個csproj時(在'解決方案資源管理器'視圖中使用上下文菜單),在Visual Studio 2008 Team Edition(版本9.0與.NET 3.5 SP1)中出現以下錯誤:

Error HRESULT E_FAIL has been returned from a call to a COM component

這只是剛剛開始發生在我的機器上。我只能找到關於它的文章this,它不包含任何解決方案。

任何想法?

回答

5

Yikes,E_FAIL是最通用的COM錯誤,因爲它實際上意味着COM函數返回失敗。我猜不知道,visual studio 2008有一個損壞的COM對象。

您是否嘗試過重新安裝visual studio 2008以重新註冊它的所有tlb和對象?

+0

它走了一會兒。也許這只是一個糟糕的一天... – Joe 2009-09-29 08:17:18

6

這是#1命中,顯示了在谷歌VS 2010 paste reference E_FAIL之類的,所以我想我會分享這種解決方法:

不要通過在Solution Explorer中的上下文菜單中使用複製/粘貼引用。

相反:

  1. 使用右鍵菜單卸載該項目從複製引用。
  2. 編輯項目文件(.csproj;它只是XML)。
  3. 找到您感興趣的 參考號並複製<Reference> XML 節點。
  4. 卸載項目以將參考複製到。
  5. 編輯項目文件(.csproj)
  6. 將上一步中複製的引用粘貼到合適的位置。您需要查找 <ItemGroup>節點,其中包含類似<Reference Include="mscorlib" />的內容,並在其上方粘貼參考。
  7. 關閉這兩個.csproj文件,並保存剛剛修改的目標文件。
  8. 通過Solution Explorer上下文菜單重新加載兩個項目。

您的引用現在被複制到目標項目中。

顯然,至少在使用環境變量的引用中存在一個問題,如here所述(儘管在我的情況下,我遇到了一個沒有使用環境變量的引用問題,並且在Visual Studio 2010 ...)

+0

謝謝! 2009年我遇到了這個問題!我從那以後就不知道問題是什麼。我無法驗證這一點,也許別人誰有這個問題可以嘗試你的答案。儘管有一個投票! – Joe 2012-06-21 09:08:02

+0

在那個副本引用意味着節省時間的設備,我認爲只是添加引用,而不是卸載項目並複製文本,它仍然會更快。我想這取決於你需要複製多少參考。 – johnc 2015-12-10 23:21:59

相關問題