2011-09-22 56 views
0

作爲構建過程的一部分..我想阻止構建,直到遠程創建(存在)文件到ftp位置,之後我將繼續構建。 (最好有一些超時限制)。MSBUILD - 直到文件存在於ftp服務器上爲止?

對此提出建議?

這甚至可能只使用標準的msbuild任務和/或extensionPack/communitytask?

+2

好奇。這聽起來像是一個生產,後期構建步驟。意圖是什麼? –

+0

一個構建步驟涉及將數據ftp到目標,並讓目標對其執行處理。遠程創建ftp服務器上的文件是我知道目標是否已完成處理的唯一途徑。它肯定不是一個簡單/典型的構建。 – vicsz

+0

@ vicjugador-這個步驟對於你的源代碼被翻譯成機器代碼是絕對必需的嗎?或者這是你必須做的發佈產品?由於現在大多數商店都將注意力集中在快速的CI環境上,因此您的請求與您的目標背道而馳。 –

回答

1

你最好打賭的是建立一個小的自定義exe文件(你甚至可以編譯它作爲一個構建步驟)來查詢你正在查找的文件。然後使用PreBuild目標或預生成步驟中的自定義目標來驗證文件是否存在。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Target Name="WaitOnFTP"> 
     <Exec Command="MyFTPWaiter.exe"/> 
    </Target> 
</Project> 

其他更多面向的MSBuild的建議是翻拍的是exe文件自定義任務,或4.0的MSBuild甚至聯任務。

FWIW,我遇到過一個類似的解決方案,他不想在版本控制中使用集成測試使用的大型二進制文件,他需要使用構建中的自定義下載器來從SMB中獲取文件分享。它工作得很好。

Custom Tasks

Inline Tasks

+0

該文件的輪詢是一個好主意,但有一個軟件可以下載,這將爲你做到這一點。有一些同步本地文件夾和遠程站點,有一些允許您將FTP站點映射到驅動器盤符(如網絡驅動器),還有一些可以配置爲作爲Windows服務運行,這將作爲你建議並不斷地查詢出現的特定遠程文件。其中一些是共享軟件,一些是商業軟件。如果未來有人會負責支持它,可能需要帶有幫助文件的程序。 – AlexPace

+0

@AlexPace - 當然。我不會在我的構建服務器上安裝任何軟件,特別是如果它有20分鐘的時間寫一個可以加入版本控制的工作。 –

+0

是的..我希望有一個解決方案,不涉及編寫額外的代碼..看起來這是唯一的方法來做到這一點。 – vicsz

相關問題