2012-07-02 254 views
5

我正在使用Visual Studio 2010 SP1和Team Foundation Server 2010.每當我打開一個項目時,Visual Studio會自動檢查項目文件(.csproj)(不是任何子文件,然而)和相應的.csproj.vspscc文件。Visual Studio 2010和TFS不需要檢出

每當我比較我的Pending Changes列表中的項目文件時,它說.csproj文件和.csproj.vspscc文件的文件是相同的 - 我們只需檢查它們或撤消更改。

有人可以解釋爲什麼它這樣做,以及如何修復它,因此每次打開項目時都不會檢出.csproj和.vspscc文件。

+0

我討厭集成的源代碼管理。 –

+0

對於某些_unknown_對我來說,vs2010通常會將解決方案/項目配置中的所有更改保留在內存中並且vs2010不會將它們保存到磁盤,除非您明確要求通過觸發_Save All_或關閉項目來執行此操作。因此,從源代碼控制進行更新並丟失內存中的所有更改時,很容易想象情況。可能是需要提前結帳項目文件的這種行爲。 這只是我個人的觀點,基於與vs2010的合作。 – Akim

+0

可能的重複[如何停止Visual Studio從「總是」檢出解決方案文件?](http://stackoverflow.com/questions/1085978/how-to-stop-visual-studio-from-always-checking-out -solution-files) – LosManos

回答

2

我們團隊中遇到過同樣的問題。問題在於項目的一個引用指向我們團隊成員工作空間中的一個不同(錯誤)目錄。 pantelif的解決方案朝着正確的方向發展,但將csproj-Files與TFS進行比較將無濟於事。由於任何理由,它說文件是相同的,但如果我有手動看他們,我意識到他們不是。 您可以輕鬆地檢查:

  • 在項目
  • 選擇 「卸載項目」
  • 右鍵點擊鼠標右鍵點擊再次
  • 選擇 「編輯xxx.csproj」

現在有深入瞭解「ProjectReference」 - 標籤。在我的情況下,「包含」 - 屬性不完全相同。 希望它能幫助你。

爲了避免這樣的問題,只是看看TFSGuide,尤其是在第3章

0

您不清楚到底發生什麼問題的步驟,但我認爲您的意思是這種情況發生的方式是,當您打開解決方案時,解決方案中的所有項目文件都會自動完成檢查過了。

這不是正常的行爲,所以你可能有一個第三方實用工具對你的項目文件執行操作;也許它會編輯它們,然後以相同的方式放回它們。檢查並禁用任何加載項(工具菜單 - >廣告輸入管理器),您還可以使用擴展管理器(也可以在工具菜單中)檢查您可能已安裝的其他擴展程序。

+0

當我做比較時,它說文件是相同的。這就是爲什麼我對此感到困惑。 – Sean

+0

@Sean可能有超過1個文件組成了VS中出現的「project」。你有沒有簽入源代碼控制的任何「用戶」配置文件(如* .csproj.user,*。suo或* .csproj.webinfo)?這些應該從源代碼管理中排除。此外,你是否發現加載的可能會改變VS行爲的插件或擴展?最後,在解決方案中用於創建項目的項目類型/模板是什麼?他們是混合標準模板嗎? –

+0

只有.csproj項目文件被簽入源代碼。我確實安裝了第三方擴展程序,但同事遇到同樣的問題(並且沒有安裝相同的擴展程序)。它們是標準的項目模板,沒有什麼不尋常的。 – Sean

0

VS很可能解決了一個鏈接問題,通常是引用程序集。
爲了檢查發生了什麼,只需打開您的解決方案&,一旦VS檢出* .csproj,'全部保存'(Ctrl + Shift + S)。

導航到您的「Pending Changes」窗口並比較* .csproj應該可以發現問題。

+3

當我做比較時,它說文件是相同的。這就是爲什麼我對此感到困惑。 – Sean

1

我能回答這個問題的一部分。爲什麼顯示的文件是相同的?

原因(據我所知)是當它自動檢出文件並進行更改時,它不保存此更改。因此,當您立即比較文件時,它找不到任何區別。如果您改爲創建項目,或手動調用保存這些修改後的文件,則會顯示更改。

0

同樣的問題也發生在我的解決方案上,後來我發現,我在本地配置的IIS有不同的VD名稱,在TFS服務器中,不同的VD名稱被分配和檢入。我打開我的解決方案,它會自動檢出.sln文件。因爲我的本地VD是不同的映射到我的本地。