2011-10-06 88 views
82

Visual Studio(也可能是TFS)以某種方式(我認爲可能是在源代碼管理合並期間)對我的解決方案中的項目路徑感到困惑。Visual Studio從某處檢索到項目的錯誤路徑

它認爲它是在這裏(爲簡單示例路徑):

C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj 

,而實際上,該項目文件位於:

C:\My Projects\ExampleSolution\ExampleProjectCorrect\ExampleProjectCorrect.csproj 

我不能爲我的生命得到它識別正確的位置。我曾嘗試過:

  • 從正確的位置刪除並重新添加項目。出現錯誤消息說The project file at C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj could not be found

  • 手動編輯.sln文件以確保所有對ExampleProjectCorrect.csproj的引用都具有正確的路徑。

  • 在解決方案目錄的文件中查找正確和不正確路徑的文件,以嘗試並追蹤工作室隱藏不正確路徑的位置。

  • 刪除的VS和TFS的緩存目錄

我撕裂了我的頭髮,因爲我不能重建的解決方案,因爲它有接近的沒有什麼區別,100個項目和綁與其他幾個開發人員一起獲得控制權。

任何人都可以指出我正確的方向,它存儲這個不正確的路徑和/或如何重置它,所以該死的東西會正確加載?

+0

那麼,如果將項目移動到ExampleProjectWrong目錄會發生什麼? –

+0

好吧,一些進步..將它移動到錯誤的文件夾允許我加載它在Visual Studio中。我不能保留它,但是因爲'ExampleProjectWrong'目錄是另一個項目的主目錄,它包含很多相同的文件夾結構。那麼,現在我已經加載了任何想法如何去改變項目的路徑?卸載的項目屬性中的路徑字段不可用,即使項目已卸載? –

+2

我第二次遇到這個問題,但這次我能夠弄清楚分支項目是針對原始文件夾的,因爲我使用了不同的連接字符串。這是第一次非常奇怪,導致visualstudio從源文件夾調試文件,並將其與分支文件混合,甚至Log4net記錄到原始文件夾! Did **刪除了解決方案suo文件**,現在只能正確訪問分支文件。 – Binke

回答

84
  1. 轉到管理工作區(通過文件/源控制菜單或工作空間中掉落源控制資源管理器下)
  2. 選擇適合您的工作空間編輯
  3. 您應該在工作文件夾下看到源 控制目錄到舊/錯項目目錄的映射。
  4. 選擇它並點擊刪除
  5. 關閉VS並刪除suo文件。

它仍然引用錯誤的目錄。也許重新綁定可能在這一點上工作,但我沒有嘗試。重新加載你的項目,你應該很好去。

+1

另外,不要被源代碼控制瀏覽器中的本地路徑鏈接所迷惑。我爲我的工作空間提供了更多的映射,它顯示了我期望的內容,但是當它嘗試加載項目時,它正在使用其他路徑。 –

+45

刪除suo文件對我來說詭計多端! –

+3

是的,刪除.suo工作。 –

0

只是猜測,但也許你的其他項目的一些引用你的項目從錯誤的位置?在這種情況下,您不僅要刪除項目並將其重新插入到解決方案中,還必須刪除並重新創建參考項目中的參考(存儲在.csproj文件中)。

+0

感謝您的回覆。該項目未從解決方案中的任何其他項目引用。 你能解釋爲什麼在文件中查找不起作用嗎?根據我的經驗,如果你給它一個目錄路徑'查找',而不是選擇'整個解決方案'它會搜索所有文件類型,除非明確告訴只搜索某些文件類型? –

+0

對不起,你是對的,我以爲你只是在解決方案中使用「在文件中查找」文件,而不是解決方案目錄,我錯過了。所以它應該工作。當錯誤消息彈出時,你能否給出更詳細的描述?編譯時是否發生,所以你可以看到哪個項目編譯失敗? –

2

我們在移動和重命名方面遇到了類似的問題。 刪除本地目錄,然後再次解決它。

12

我在執行從Visual Source Safe 2005到TFS 2012的遷移後遇到了此問題。我無法等待未來幾周內發佈的「轉換向導」,因此我只運行了VSSConvert.exe。這花了6年左右的歷史,並將其轉移到TFS ..雖然我沒有得到實際的時間線歷史..我在同一天得到了一堆條目的評論指出實際檢查歷史..不錯..

因此,它通宵運行後(成功,耶!)我正在加載我的項目時遇到了問題,就像這個問題所述,出於某種原因,一些項目被引用到一個不正確的目錄..我檢查了。 sln,.vsproj文件,並獲取最新,刪除重新獲得..添加刪除..等..我試過一切在這裏指出..甚至升級我的工作空間,我不知道甚至做什麼..

最後...我刪除了* .suo文件和中提琴..它的工作..

花了幾個小時在這個..

+2

刪除* .suo文件之前,請確保關閉所有Visual Studio實例,然後再次打開解決方案。 – Mas

-2

我知道這是一條老線。我剛剛經歷了同樣的問題。我們最近遷移了TFS,因此我創建了一個新的工作空間來映射到新服務器並保留舊服務器。每當我打開一個應該定位到我的新工作區的解決方案時,VS總是嘗試從我的舊映射目錄加載項目,直到我刪除舊的工作區。

+0

這並不能真正爲最初的問題提供任何幫助 –

+0

我認爲我的問題具有相同的性質。我有兩個工作區,其中一個是舊的。我在新的工作,並創建解決方案,添加項目。只有我沒有關閉解決方案,一切都很好。但是如果我保存瞭解決方案並試圖打開它,VS總是試圖從舊工作區中映射的目錄中加載解決方案中的項目。 – BackToSorrento

27

只需刪除解決方案.suo文件爲我工作。

+5

在VS2015中,我需要關閉所有的Visual Studio實例,然後刪除 \ .vs \ \ \ .suo'爲我工作。 – GraehamF

5

稍有不同的解決方案。

TFS顯示特定解決方案的不存在的路徑。以前,我有一臺帶有單獨D:驅動器的筆記本電腦,但現在,我只有一個C:驅動器。 TFS仍然認爲我的項目是存儲在d:\項目\ MikesProject

我沒有一個.suo要刪除的文件,在d:路徑沒有在我的工作區的任何地方提到的(在File\Source Control\Advanced\Workspaces菜單下埋遠),TFS顯示我在我的(不存在的)D:目錄中有最新的文件,而VS2013中的TFS沒有這個項目的「Remove Mappings」選項。

做了什麼工作是簡單地做一個「獲取最新版本」的項目。

這樣做後,代碼的全新副本寫入我的C:驅動器,(有趣地),現在本地路徑顯示爲下劃線

以前,D:路徑沒有這樣顯示。

奇數。很奇怪。

+2

完全一樣的情況對我來說。因爲那條不正確的道路,我很猶豫是否觸發了「獲取最新」,但@Mike給了我勇氣! – Jonathan

+0

這對我有用。謝謝。 –

0

嘗試了很多建議後,我刪除了suo文件(再次)。最後一次工作。爲什麼它不能提前工作我不知道。一般來說,我發現刪除suo文件是我做的第一步。

0

我有我的開發部門打開我的asp.net網站解決方案。 然後,爲了一些其他目的,我從Main分支打開了相同的解決方案。

我對dev分支中的一個.ascx.cs文件進行了更改並設置了斷點。當我運行調試器時,除了達到主分支的.ascx.cs以外,我的所有斷點都在Dev Branch中。不知道。

嘗試清理臨時文件夾,但沒有奏效。

什麼工作:

關閉Visual Studio的

再次打開從Dev分支解決方案的所有實例。

再次運行,中斷點開始打。

1

即使刪除.suo文件和文件夾.vs後,我不得不編輯.sln文件,儘管SccLocalPath#是正確的,從SccProjectName#刪除舊的相對URL。顯然VS也使用該名稱作爲提示路徑。

1

嘗試刪除或重命名.suo文件(包括擴展名)。該文件位於解決方案文件的相同位置。它爲我工作。

0

在我的情況下,我將* .sln文件複製到項目文件夾中,並將項目路徑更改爲* .sln文件。只有這樣才能解決問題(vs 2015 sp1,winservise項目)。

刪除* .suo對我沒有幫助。

相關問題