3 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
重建=清理+構(gòu)建(通常)
值得注意的細(xì)節(jié):
對(duì)于多項(xiàng)目解決方案,“重建解決方案”對(duì)每個(gè)項(xiàng)目執(zhí)行“清理”,然后執(zhí)行“構(gòu)建”(可能并行執(zhí)行)。而“干凈解決方案”之后是“構(gòu)建解決方案”,則首先清理所有項(xiàng)目(可能并行),然后清理所有項(xiàng)目(可能并行)。當(dāng)項(xiàng)目間的依賴(lài)關(guān)系發(fā)揮作用時(shí),事件排序的這種差異會(huì)變得很明顯。
這三個(gè)動(dòng)作均對(duì)應(yīng)于MSBuild目標(biāo)。因此,項(xiàng)目可以覆蓋“重建”操作以執(zhí)行完全不同的操作。

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
即99%的時(shí)間重建=清理+重建。
但是不能保證它們是相同的。這3個(gè)操作(重建,構(gòu)建,清除)代表不同的MSBuild目標(biāo)。每個(gè)項(xiàng)目文件都可以覆蓋其中的每個(gè)文件以執(zhí)行自定義操作。因此,在啟動(dòng)clean + build(或完全刪除它們)之前,某人完全有可能重寫(xiě)rebuild來(lái)執(zhí)行多個(gè)操作。
非常極端的情況,但由于評(píng)論討論而指出。

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊
1每個(gè)項(xiàng)目,重建項(xiàng)目=(清理項(xiàng)目+生成項(xiàng)目)。
2個(gè)解決方案,重建Sln = foreach項(xiàng)目(Clean項(xiàng)目+ Build項(xiàng)目)!= Clean Sln + Build Sln
假設(shè)您有一個(gè)Sln,包含proj1,proj2和proj3。
重建Sln =(清潔proj1->構(gòu)建Proj1)+(清潔proj2->構(gòu)建Proj2)+(清潔proj3->構(gòu)建Proj3)
清潔Sln +構(gòu)建Sln =(清潔proj1 +清潔proj2 +清潔proj3)->(構(gòu)建proj1 +構(gòu)建proj2 +構(gòu)建proj3)
->表示串行,+表示并發(fā)
因此,如果您未正確配置項(xiàng)目依賴(lài)項(xiàng)而提交了許多代碼更改,就有可能會(huì)導(dǎo)致Rebuild Sln導(dǎo)致某些項(xiàng)目鏈接到一個(gè)過(guò)時(shí)的lib,因?yàn)椴荒鼙WC所有構(gòu)建都經(jīng)過(guò)全部清理。(在這種情況下,Clean Sln + Build Sln將給出鏈接錯(cuò)誤,并立即通知您,而不是為您提供行為異常的應(yīng)用程序)
添加回答
舉報(bào)