2009-01-26 57 views
3

對於我的兩個VS 2005 C++項目,VS想在構建項目時寫入.sln文件。我有很多其他VS 2005 C++項目,但情況並非如此。這是一個問題,因爲我們將ClearCase源代碼控制與VS 2005安裝集成在一起,當我們嘗試通過批處理文件運行整夜構建時,由於ClearCase檢出對話框顯示,構建暫停。當我在VS 2005中構建項目時,爲什麼我的一個項目的GUID發生了變化?

看看.sln文件中的VS正在改變什麼,它是項目行上的第二個GUID。

大樓前:

Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InterCommClientB", "InterCommClientB.vcproj", "{A2AF232A-7F27-4340-81D5-8ABFD10994D2}" 

建成後:

Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InterCommClientB", "InterCommClientB.vcproj", "{67BE85B7-3234-484E-88FB-4F0E42096583}" 

任何幫助感激地接受。我是VS 2005的新手,因爲我們最近才從VC++ 6.0遷移過來,所以如果我錯過了某些明顯的東西,我很抱歉。

我們正在運行VS 2005專業版,安裝了SP1。

Regards,

Greg。

回答

1

我在這裏猜測,但它看起來像InterCommClientB項目(項目,而不是項目中的文件)的一些變化。發生這種情況時,會更新sln,在這種情況下僅更新項目GUID。

解決此問題的最佳猜測是手動構建解決方案,然後簽入更改。通過這種方式,sln文件不會在構建中更改。

我的第二個最好的猜測是,你已經在你的計算機上做了這個改變,它工作的很好,但是你沒有在PC上進行夜間測試。

0

這可能完全在那裏 - 但有時Visual Studio未能簽入解決方案文件,當它被修改並且解決方案在Visual Studio中打開時。嘗試關閉Visual Studio,然後才提交解決方案文件。

如果不是這樣,可能有其他一些機構導致解決方案文件需要更改其使用的GUID。在一個例子中,我使用的是來自美國國家儀器公司的.NET工具,他們有一個授權方案,每當我去做重建時,都會觸發這種行爲(修改無關的文件)。

請仔細看看構建的輸出結果(在日誌或輸出窗口中) - 您可能會發現一些進一步的線索!

2

我有類似的問題。看起來,從VS的舊版本(如6或2003)轉換項目時,VS 2010不會將項目GUID添加到.vcxproj文件。因此,當你打開包含這樣的項目的解決方案時,VS會爲這樣的項目重新創建GUID,並且會更改.sln文件,但不會更改.vcxproj文件。所以再次打開這樣的解決方案的情況將是相同的,並且.sln文件可能會再次改變。

看到這個:http://connect.microsoft.com/VisualStudio/feedback/details/586258/missing-projectguid-in-vcxproj-files

+0

我也見過這個效果。如果您有兩個解決方案中使用的項目,並且其中一個尚未更新到當前的VisualStudio版本,則可能會發生這種情況,您可以獲取新的GUID。 – 2011-08-11 11:08:02

相關問題