如何在MSBuild中按名称或创建日期排序文件夹?

如何在MSBuild中按名称或创建日期排序文件夹?,msbuild,msbuild-task,Msbuild,Msbuild Task,我有工件目录文件夹,其中包含名为5.1.0.1、5.1.0.2等的子文件夹,5.1.0.N 每个5.1.0.X文件夹包含另一个版本的输出(DLL、exe文件) 现在我想为安装程序创建一个构建定义,它将获取最新的构建输出(5.1.0.N),并将其包含到我的安装包中 为此,我需要确定5.1.0.X文件夹中哪一个是最新的 最好的方法是通过文件夹的创建日期来查找“latest”,但我确信5.1.0.I-1是在5.1.0.I之前创建的,所以我很乐意通过编号来定义“latest”——我的意思是按文件夹名称排

我有工件目录文件夹,其中包含名为5.1.0.1、5.1.0.2等的子文件夹,5.1.0.N

每个5.1.0.X文件夹包含另一个版本的输出(DLL、exe文件)

现在我想为安装程序创建一个构建定义,它将获取最新的构建输出(5.1.0.N),并将其包含到我的安装包中

为此,我需要确定5.1.0.X文件夹中哪一个是最新的

最好的方法是通过文件夹的创建日期来查找“latest”,但我确信5.1.0.I-1是在5.1.0.I之前创建的,所以我很乐意通过编号来定义“latest”——我的意思是按文件夹名称排序:5.1.0.1是最早的,5.1.0.N是最新的


那么,我怎样才能在MSBuild中得到这个呢?哪些MSBuild任务可以帮助我

您可以构建一个自定义任务,该任务将使用c#代码提取文件夹。这里有一个类似的答案:

谢谢您的回复。我看了这个示例,但是$(MSBuildToolsPath)是什么?我在MsBuild保留属性列表中未找到它:我也无法在安装了.NET 4.0和Visual Studio 2010的本地框中找到Microsoft.Build.Tasks.v4.0.dll。您链接了它:MSBuildToolsPath--在当前MsBuild“toolset”中定义的键位置。例如,对于“v4.0”工具集,它指向.NET 4.0安装文件夹,其中包含microsoft.common.targets。请参阅下面关于MSBuildBinPath的注释。