2011-04-26 39 views
0

Hej全部, 我將項目解決方案從vs2008升級到vs2010。引用的項目x不存在

但現在我有一個奇怪的問題。我參考了多個解決方案中的項目(3個解決方案) 其中2個解決方案的參考錯誤。

我能夠添加引用(項目引用),但是當我建立我得到了警告被引用的項目x不存在。和我必須添加參考的錯誤。

我已經刪除並重新添加項目,與參考文獻相同但沒有結果。

enter image description here

enter image description here

沒有任何人有任何想法?

格爾茨,

喬納森

+0

如果BrokenGlass的答案不適用於您,我一次或兩次有同樣的錯誤 - 通過刪除損壞的參考,重建所引用的項目,然後添加參考回來解決。 但BG可能是正確的。 – AllenG 2011-04-26 14:58:51

回答

3

確保您的項目不使用「.NET框架4客戶端配置文件」作爲目標框架,這是這些問題最常見的來源。

您可以在目標框架下的項目屬性中進行檢查。

MSDN

如果你的目標.NET框架 4客戶端配置文件,你不能 引用的組件是不是在 .NET Framework 4的客戶端配置文件。 相反,您必須將.NET Framework 4作爲目標。有關詳細信息,請參閱 解決.NET Framework 定位錯誤。

3

我正經歷着非常相同的問題,雖然我是正確的遷移,從2008年到VS VS 2010中的所有項目引用.NET 3.5(以系統組件的所有引用是使用一個運行時版本V2.0)。

奇怪的是,如果我的解決方案(和此解決方案的子文件夾中的項目)位於特定路徑中,則只會出現錯誤...我可以通過移動項目或重命名項目來「解決」問題(僅限項目文件,而不是輸出二進制文件)?!

雙擊項目中的引用正確打開對象瀏覽器,我可以在其中找到引用項目中定義的所有工件!

我確實開始刪除項目中的所有內容(類,資源,引用等)。最後,我只有兩個項目(引用B)沒有任何其他引用,每個只有一個空類。我仍然有消息「被引用的項目」.. \ B \ B.csproj'不存在。「突然間,試圖將源代碼複製到另一臺PC上,然後又回到我機器上的原始路徑(這種黑魔法來解決問題),但我收到了消息「無法複製,導致文件名太長」。

Wierd²!!!我確實刪除了我個人電腦上的所有東西,並且再次從另一臺個人電腦上覆制來源。它通過成功!我再次從其他PC重新複製(現在覆蓋現有的本地副本),並再次收到消息「無法複製,導致文件名太長」。所以只有在覆蓋現有文件時纔會出現問題。

我發現只有當現有文件是「只讀」時才發生錯誤。只讀刪除標誌解決了這個問題。但是,這個錯誤是我的初始問題的根源可能的標誌:「被引用的項目」.. \ B \ B.csproj'不存在。「

因此,我決定通過重命名其中一個文件夾而不是更改總長度來檢查項目路徑長度是否是問題!錯誤仍然發生(未找到參考)。接下來(我知道,你已經認爲我瘋了或愚蠢,但所有這些步驟都經過了各種同事的驗證),我將解決方案複製到一個新文件夾中(路徑更長)。驚喜,錯誤沒有再發生!

但是將解決方案移回到具有相同長度(可能是另一個名稱)的文件夾中,重新引入錯誤(在解決方案的「清理」之後,否則在obj中的元數據幫助解決了引用)。

我也能夠通過重命名項目文件B而不是路徑中的文件夾來重現此問題。一個更長或更短的項目文件名正在解決這個問題。

項目文件路徑的長度爲 「195」: d:\ TFS_Builds \ 5 \ XXXX 1.1 \推出1.11 \源頭\推出1.11 \異常儲存庫\ XXXXXX.Framework.ExceptionHandling.Repository.ServiceHost \ XXXXXX.Framework .Exception.Handling.Repository.ServiceHost

另外,因爲當我試圖找出問題的根源時,我可以非常有創意,我在C:\上創建了相同的路徑,並將解決方案放在那裏... ...相同發生了錯誤。

我從來沒有找到(至今)這個原因,並在MSDN上發佈了一個問題:http://social.msdn.microsoft.com/Forums/en/msbuild/thread/f0eb6aed-5854-4678-9546 -09c1a7705e30

+0

底部的鏈接對我來說有問題的答案!非常感謝! – user555265 2012-01-09 14:34:04

0

以下是固定我的問題: 我有一個指向同一個名爲「Utilities.Proxy3.5」項目,這會給我以下警告:

「的引用項目 '.. \ .. \ Utilities.Proxy3.5 \ Utilities.Proxy3.5.csproj'不存在。「

重命名項目文件夾和項目文件「Utilities.Proxy35」,並重新添加引用解決了這個問題。注:我只刪除了數字3和5之間的一個點。

我希望這會幫助某人。

0

我有同樣的問題。 對我來說解決的是我首先打開了每個參考項目。 VS要求修復某些文件的權限。允許它這樣做。

然後打開頂部的項目,它會工作。

顯然這是VS創建原始項目的版本問題。

好運

0

檢查以下長度:

  1. 的參考項目的目錄的路徑
  2. 到項目中的相對路徑它引用

如果這些路徑加起來完全是 259個字符,你會在.NET中遇到一個bug Path.GetFullPath的實現將導致VisualStudio 2010的行爲就像引用的項目不存在一樣。

2

我有一個類似的問題,上述解決方案沒有幫助。我的工作是在文本編輯器中打開項目文件。有一個庫的重複引用,一個作爲項目引用,另一個作爲dll引用。我刪除了兩個。然後我在Visual Studio中打開解決方案,並重新添加引用作爲項目引用。只有一個參考被添加,我停止接受警告。

+1

我剛剛也有類似的問題。我收到了錯誤,但引用分支中沒有引用。所以我也打開了csproj文件,發現有10個引用不存在的文件夾!我將它們全部刪除並解決了問題。 – Andrew 2017-03-14 10:16:47

相關問題