2017-08-10 43 views
1

我正在使用TFS 2017,關於標題,我找到了一個術語:增量構建 - 但是,我無法找到設置它的位置。我嘗試在'構建參數'(/ p:IncrementalBuild = true)中添加Incremental參數,但總是出現錯誤,說明這是錯誤的參數。 是否有可能交付(或建立和交付)僅更改的文件?TFS 2017 - 如何構建/交付僅更改的文件?

回答

1

讓我們假設我是如何解決這個問題(如果任何人有類似的問題):

由於TFS 2017年總交付的所有文件 - 變與不變,但我只需要改變,我解決了這個爲如下所示:

由於傳輸到Artifact的文件保留時間戳(未更改的文件具有last_edited時間戳,並且編輯的文件具有新的當前時間戳),我決定創建FIXED Artifact目錄(不依賴於構建版本,但始終相同) 。然後我編寫了PowerShell腳本(作爲第一個發佈步驟),它刪除所有文件(遞歸),其時間戳爲<(Now - x min),以及之後的所有空目錄。 在這種方式下,工件目錄包含只有已更改的文件(整個文件結構(已更改的文件)保留)。現在發佈只會將這些文件發送到目的地。

乾杯! :)

0

如果您想要增量構建。當您添加一個Visual Studio Build/MSBuild任務來構建項目時,只需取消選中即可。Clean選項。因此它會同步源文件,並且只能從第二次獲取更改的文件來構建。有關詳細信息,請參閱 Build task Arguments

Clean選項:如果您想使其成爲增量構建,請設置爲False。此設置可能會縮短您的編譯時間,特別是如果您的代碼庫很大時,尤其如此。除非您還將Clean存儲庫設置爲False,否則此選項沒有實際的 效果。

如果您想重建代碼項目中的所有代碼,請將其設置爲True。 這相當於MSBuild /target:clean argument

假設你想要的唯一更改的文件傳送到特定的位置,你可以添加一個複製文件步驟修改過的文件複製到的位置。

enter image description here

+0

謝謝,Andy-MSFT!我現在會嘗試。 –

+0

@ J.Ops您是否已通過解決方案解決了您的問題?任何更新? –

+0

Andy-MSFT,我沒有按照您提供的方式解決此問題 - TFS始終提供所有文件 - 已更改並保持不變。我昨天晚上解決了這個問題,如下所示: 由於傳輸到工件的文件保留時間戳(未更改的文件具有last_edited時間戳,並且編輯的文件有新的當前時間戳),我決定創建FIXED Artifact目錄(不依賴於構建版本,但始終相同)並編寫PowerShell腳本,刪除所有具有timestamp <(Now - x min)的文件(遞歸),然後刪除所有空目錄。 –