只是爲了讓我更清楚,我想問問你們正確的狀態(S)有你的什麼時候應該使用ReBuild而不是Build?
項目或解決方案重建的而不是在Visual Studio構建?
如果我改述:爲什麼MS需要在Visual Studio中創建「重新構建所有」選項?他們主要的動機是什麼?
謝謝!
只是爲了讓我更清楚,我想問問你們正確的狀態(S)有你的什麼時候應該使用ReBuild而不是Build?
項目或解決方案重建的而不是在Visual Studio構建?
如果我改述:爲什麼MS需要在Visual Studio中創建「重新構建所有」選項?他們主要的動機是什麼?
謝謝!
DRY:Rebuild = Clean +爲每個項目輪流建造。
構建不會刪除以前的構建輸出。 重建會刪除它們並重新構建(如果您處於解決方案中,則一次一個項目:刪除proj1 \ bin \ Debug,構建proj1,刪除proj2 \ bin \ Debug ...)。
當我需要更新我的解決方案的第三個依賴關係時,我重建(或乾淨的構建)的主要情況。讓我們來看看下面的文件夾樹:
SOLUTION |__Dependencies |__PROJ_1 |__bin |__obj |__(code) |__PROJ_2 |__bin |__obj |__(code)
如果我改變我的dll中的相關性和不做重建,VS(和的MSBuild)將仍然使用以前的DLL版本是在PROJ_N \ BIN \調試(或者斌\發佈),因爲依賴查找順序(見http://www.beefycode.com/post/Resolving-Binary-References-in-MSBuild.aspx):
.USER
文件 - 由{CandidateAssemblyFiles}
$(ReferencePath)
表示。{HintPathFromItem}
指示。 在bin文件夾中的DLL雲在第一查找情況下,依賴文件夾中的DLL來在第二種情況下...
在這種情況下,我會做一個乾淨的(調試),清理(發佈),然後構建,以根除bin文件夾中的所有先前版本。我可能有點矯枉過正,重建可能已經足夠,但我不確定,因爲dll在Debug和Release文件夾中......
有時事情會出錯,構建不起作用。
發生這種情況例如當我沒有正確地更新依賴庫,然後沒有正確地複製到版本的bin路徑。還有其他一些例子,不介意。
那是當我使用重建。
換句話說,'Rebuild' ='Clean' +'建設' – abatishchev 2010-11-15 09:29:31
大部分時間,對於單個項目,是的。請參閱http://stackoverflow.com/questions/1247457/difference-between-rebuild-and-clean-build-in-visual-studio-2008。 – 2010-11-15 09:33:25
在你的Microsoft.Common.Targets中,你可以看到對於一個項目Rebuild = BeforeRebuild;清潔; $(_ ProjectDefaultTargets); AfterRebuild; – 2010-11-15 09:36:27