2010-04-15 66 views
114

我一直在使用F5(開始調試)多年來構建代碼(如果它過時),然後調試。這也是VS 2010的工作,但是今天它只是在沒有構建的情況下開始調試。假設我對該項目進行了清理,然後按F5而不是構建它,以便它可以運行,則會拋出一條錯誤消息,指出該exe不存在以供運行。我如何使它先建立?什麼可以改變?當代碼發生變化時,Visual Studio 2010不會編譯運行

+1

我的複選框有同樣的問題。它從一到第二天發生,我沒有改變選項對話框中的任何東西。漢斯的回答解決了我的問題。 – jbe 2010-09-30 13:34:25

+0

我剛剛碰到這個,發佈了一個bug報告給msft connect,發表你的投票,希望能夠讓他們修復它https://connect.microsoft.com/VisualStudio/feedback/details/626414/visual-studio-2010-does -not-build-project-when-run-with-debugging-f5 – Jason 2010-12-01 19:26:18

回答

155

工具+選項,項目和解決方案,構建和運行。 「運行時,項目已過期」=始終構建。下面那個=不要啓動。

+4

剛剛檢查並將其設置爲Always Build ...因此它不應該這樣做。 – jamone 2010-04-15 15:57:38

+4

適用於我的機器。用於處理你的。接下來是重新啓動。 – 2010-04-15 16:01:31

+2

重新啓動沒有解決它,但更改「運行時,項目已過時」=始終生成不要啓動保存/退出VS,然後將其更改回修復它。 – jamone 2010-04-15 16:51:07

110

我有這個問題,它竟然是配置管理器。我最近從Debug | Mixed CPU更改爲Debug |任何CPU,並且該項目沒有設置爲在此配置下生成

+0

這也解決了它 - 似乎是這個問題的可能原因。 – gstercken 2011-06-13 18:56:16

+3

偉大的提示!不是你會想到的。謝謝 – Almund 2011-08-23 14:26:53

+0

是這個給我修好了!只需點擊下一個複選框,即可在配置管理器中進行構建。謝謝蒂姆! – chaz 2012-03-30 03:38:06

21

打開您的配置管理器並檢查是否選中了啓動項目的構建列中的複選框。我有同樣的問題,但複選框不活動,所以我檢查它,現在它的工作原理!

+0

謝謝幫助了我。我忽略了這個選項。 ;) – Skalli 2012-01-23 21:10:31

14

除了上面還確保「只有建立在運行啓動項目和依賴」未被選中(在工具 - >選項 - >項目和解決方案 - >生成和運行)

+1

我有這個問題,這是解決方案。謝謝。 – 2013-06-27 08:31:02

+1

這爲我修復了它,但似乎像一個錯誤。有問題的項目是一個依賴項,應該建立。 – KingOfHypocrites 2014-05-08 14:27:37

+0

如果您有多個啓動項目或任何測試項目,這是一個可怕的設置,可以不加選擇。 – cbp 2014-10-15 03:03:24

9

我這個問題也是。我查了一切建議無濟於事。事實證明,我的電腦上的時鐘已經提前了大約12個小時,而我正在保存到網絡驅動器。這些文件的時間戳完全沒有用,而且VS並不認爲需要構建我的項目,因爲這些文件超級最新。

+0

我感覺你的痛苦... – 2012-03-12 20:16:12

3

一段時間以來,我有alwasy一直困惑,爲什麼我的筆記本電腦(雙核2ghz,2Gb ram)編譯我的網站比我的桌面(四核4ghz與16Gb ram)更快。兩個都有SSD磁盤。構建選項全部設置正確(相同,核心計數=並行構建),但筆記本電腦在幾秒鐘內運行該站點,並且dekstop在約30秒內運行該站點。

在網站的「屬性頁面」下找到一個附加選項,在生成設置下,筆記本電腦被設置爲「無內置」,桌面設置爲「生成並運行」。只有在筆記本電腦上運行該站點而未檢查編譯器錯誤後才能找到它。

可能會幫助別人,將來這樣想我會添加到這個職位

2

還有一點要檢查是在解決方案屬性頁 - >配置屬性 - >配置:請務必在構建列所有複選框檢查是否需要重新編譯項目。

1

我嘗試了以前的解決方案,結果混合。但它似乎爲我工作,每當我去建設 - >清潔解決方案

但它越來越討厭不得不這樣做每一次。

0

對我來說,這是因爲構建配置設置。我的visual studio解決方案有許多項目,這些項目是C#和C++項目的混合體。現在我意識到,出於某種奇怪的原因,Visual Studio不會默認構建C++項目,這通過構建配置設置很明顯。我在將一個新的C++項目添加到解決方案後才注意到它。我不知道爲什麼VS在向解決方案中添加新的C#項目時不遵循相同的方法。

右鍵單擊解決方案資源管理器中的解決方案文件 - >單擊上下文菜單中的屬性 - >左窗格中的選擇配置屬性節點 - >選擇配置節點。它顯示瞭解決方案中所有項目的列表。第一個項目LearnDs是一個C++項目。注意第一行的構建列中的複選框。它沒有被檢查。這就是爲什麼Visual Studio 2010沒有構建我的C++項目(按F5時),它包含自上次構建成功以來的一些更改。

enter image description here

我檢查了相應的複選框,並保存生成的配置設置爲解決方案的那一刻,它的工作。現在,當我按下F5時,我會看到下面的提示,因爲VS能夠檢測到自上次構建以來有一些新的更改。此提示是因爲我在工具菜單中的設置 - >選項子菜單 - >項目和解決方案節點 - >生成並運行節點 - >「運行時項目已過期」設置爲Prompt to build。如果您不喜歡此提示,請將其設置爲Always build

enter image description here

0

工具 - >選項 - >項目和解決方案。

  1. 設置爲總是建立/提示,以建立「上運行,該項目是過時的」
  2. 取消選中「只有建立在運行啓動項目和依賴」
相關問題