2014-01-23 40 views
0

我有ArtifactsDirectory文件夾,其中包含稱爲5.1.0.1,5.1.0.2,...,5.1.0.N的子文件夾。如何在MSBuild中按名稱或創建日期排序文件夾?

每個5.1.0.X文件夾都包含另一個版本的輸出(dll,exe文件)。

現在我想爲安裝程序創建一個構建定義,它將獲取最新的構建輸出(5.1.0.N)並將其包含到我的安裝包中。

爲此,我需要確定哪些5.1.0.X文件夾是最新的。

最好的方法是按文件夾的創建日期查找「最新」,但我確信5.1.0.i-1是在5.1.0.i之前創建的,所以我將很樂意定義「最新「 - 我的意思是按文件夾名稱排序:5.1.0.1是最早的,5.1.0.N是最新的。

那麼,我怎樣才能得到這個MSBuild?哪些MSBuild任務可以幫助我?

回答

0

您可以建立一個自定義的任務,將在這裏使用C#代碼拿起文件夾是一個類似的答案:MsBuild- Delete files from a directory based on time modified/name

+0

感謝您的回覆。我看了這個例子,但$(MSBuildToolsPath)是什麼?我還沒有在MsBuild保留屬性列表中找到它:http://msdn.microsoft.com/en-us/library/ms164309%28v=vs.100%29.aspx 我也無法找到Microsoft.Build。 Tasks.v4.0.dll在我已經安裝了.NET 4.0和Visual Studio 2010的本地盒子上。 – AndreyS

+0

您鏈接了它:MSBuildToolsPath - 在當前MSBuild「工具集」中定義的關鍵位置。例如,對於「v4.0」工具集,它指向.NET 4.0安裝文件夾,其中microsoft.common.targets位於該文件夾中。請參閱下面有關MSBuildBinPath的說明。 – granadaCoder

+0

http://stackoverflow.com/questions/7908757/microsoft-build-task-missing – granadaCoder

相關問題