使用 FindMatchingFiles 工作流活动的 MatchPattern 属性
我正在使用 TFS 2010 Team Build 自定义构建过程模板的默认工作流程。有一个名为 FindMatchingFiles
的活动允许使用 MatchPattern
属性中定义的模式搜索特定文件。如果我只指定一个文件扩展名,它就有效。示例:
String.Format("{0}\\**\\\*.msi", SourcesDirectory)
但我也想包含 *.exe。尝试以下模式但不起作用:
String.Format("{0}\\**\\\*.(msi|exe)", SourcesDirectory)
任何人都可以告诉我如何纠正它?
I'm customizing the default workflow of build process template using TFS 2010 Team Build. There is an activity named FindMatchingFiles
allows to search for specific files with a pattern defined in MatchPattern
property. It works if I only specify one file extension. Example:
String.Format("{0}\\**\\\*.msi", SourcesDirectory)
But I would like to include *.exe as well. Trying following pattern but it doesn't work:
String.Format("{0}\\**\\\*.(msi|exe)", SourcesDirectory)
Anyone could show me how to correct it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
String.Format("{0}\**\*.msi;{0}\**\*.exe", SourcesDirectory)
You can use
String.Format("{0}\**\*.msi;{0}\**\*.exe", SourcesDirectory)
FindMatchingFiles
活动的MatchPattern
属性使用这意味着您无法组合多个扩展。您需要调用
FindMatchingFiles
活动两次。然后,您可以在使用时合并这两个调用的结果(即,如果您的结果是msiFiles
和exeFiles
,则可以使用msiFiles.Concat(exeFiles)
作为ForEach
的输入)。但是,正如您在 @antwoord 的回答 中看到的,该活动实际上似乎接受以分号分隔的模式列表,与
Directory.GetFiles
不同。The
FindMatchingFiles
activity'sMatchPattern
property uses theThat means that you can't combine multiple extensions. You'll need to call the
FindMatchingFiles
activity twice. You can then combine the results of those two calls when you use them (i.e. if your results aremsiFiles
andexeFiles
, you can usemsiFiles.Concat(exeFiles)
as the input to aForEach
).However, as you can see with @antwoord's answer, the activity does actually seem to accept a semi-colon delimited list of patterns, unlike
Directory.GetFiles
.FindMatchingFiles 有一些奇怪的搜索模式。这是代码(使用 ILSpy 反编译),因此您可以测试搜索模式,而无需启动新的构建。
它包含位于以下位置 (Z:) 的硬编码根目录
代码:
FindMatchingFiles has some strange search pattern. Here is the code (decompiled using ILSpy) so you can test your search patterns without having to kick off a new build.
It contains a hardcoded root dir at the following location (Z:)
Code: