2010-08-16 17 views
54

在過去的一週左右,我注意到Visual Studio 2010不會重新編譯代碼,除非強制執行。這是一個使用WPF的C#4.0項目。我打F5,看起來好像它使用了重建,如果代碼已經改變,然後啓動應用程序。相反,它現在在左下角的狀態欄中顯示「Build Successful」,並啓動應用程序。但它實際上並沒有重建應用程序。我可以告訴大家,因爲:除非我手動選擇「重建」,否則Visual Studio 2010不重建已更改的代碼

  1. 即使我做大量更改,它「編譯」非常迅速,
  2. ,如果我嘗試設置一個斷點,它給出警告的代碼已經改變,並且沒有按't 設置斷點。

無論代碼中是否存在錯誤,都會發生這種情況,所以如果構建失敗,我不相信它會啓動舊版本。

如果我反而從菜單中選擇重建項目,它就會起作用。然而,這種阻礙了我平時的工作流程。我經常忘記這樣做,然後花10分鐘時間試圖弄清楚我的改變到底是什麼問題。更糟糕的是,有時候會有構建錯誤,我不會馬上注意到。

F6來「重建」該解決方案也不會做任何事情。我可能會使用哪些設置,會導致此行爲?

+0

檢查以確保您的項目引用確實是項目引用,而不是引用其他項目的輸出程序集。 – 2010-08-16 00:07:22

+0

嗯......我不認爲這與我的引用有關,因爲即使在我實際啓動的項目中更改代碼時也會發生這種情況。 – notJim 2010-08-16 00:15:38

回答

117

嘎,我明白了這一點。當我在一個太深的夜晚之後搞亂了構建設置的時候,這當然是一件愚蠢的事情。以下是要檢查的內容:

  1. 工具>>選項>>項目和解決方案>>構建和運行>>檢查「運行時,項目過期時」設置爲「始終構建」或「提示構建」
  2. 構建>>配置管理器>>檢查是否爲要爲每個需要使用的配置構建的所有項目選中「構建」。
+4

我認爲Visual Studio會以某種方式週期性地破壞這個文件,因爲在我的整個過程中,這個確切的事情會偶爾發生。 – notJim 2012-01-30 20:00:07

+0

這非常有幫助。我在Windows Update之後注意到了這一點。 – evanb 2013-04-10 21:13:25

+0

同樣的問題影響了我與Visual C#2010 Express。在默認情況下,如果配置管理器中的某個項目將「任何CPU」作爲其平臺,則「Build」將默認爲未被檢查。 – 2014-03-23 01:14:46

0

另外如果解決方案中有多個項目,請檢查配置管理器。 如果你有一些項目「任何CPU」和一些「x86」,將只建立同一架構的項目。 與「調試」和「Realese」配置相同。

相關問題