3 回答

TA貢獻1811條經驗 獲得超6個贊
重建=清理+構建(通常)
值得注意的細節:
對于多項目解決方案,“重建解決方案”對每個項目執行“清理”,然后執行“構建”(可能并行執行)。而“干凈解決方案”之后是“構建解決方案”,則首先清理所有項目(可能并行),然后清理所有項目(可能并行)。當項目間的依賴關系發揮作用時,事件排序的這種差異會變得很明顯。
這三個動作均對應于MSBuild目標。因此,項目可以覆蓋“重建”操作以執行完全不同的操作。

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

TA貢獻1906條經驗 獲得超10個贊
1每個項目,重建項目=(清理項目+生成項目)。
2個解決方案,重建Sln = foreach項目(Clean項目+ Build項目)!= Clean Sln + Build Sln
假設您有一個Sln,包含proj1,proj2和proj3。
重建Sln =(清潔proj1->構建Proj1)+(清潔proj2->構建Proj2)+(清潔proj3->構建Proj3)
清潔Sln +構建Sln =(清潔proj1 +清潔proj2 +清潔proj3)->(構建proj1 +構建proj2 +構建proj3)
->表示串行,+表示并發
因此,如果您未正確配置項目依賴項而提交了許多代碼更改,就有可能會導致Rebuild Sln導致某些項目鏈接到一個過時的lib,因為不能保證所有構建都經過全部清理。(在這種情況下,Clean Sln + Build Sln將給出鏈接錯誤,并立即通知您,而不是為您提供行為異常的應用程序)
- 3 回答
- 0 關注
- 803 瀏覽
添加回答
舉報