minimatch

TFS 2018 minimatch pattern failing to exclude test projects


I'm attempting to use the following minimatch pattern to exclude some test projects during a build, but the exclude pattern seems to be ignored and the build server attempts to build them anyway.

Components\**\*.vcxproj;!**\*Test.vcxproj

Using the Visual Studio Build step, the textbox labeled Solution contains the pattern. I use nearly the same pattern in another build step that packages the binaries for nuget and it doesn't have any issues.

Am I missing something?


Solution

  • This pattern works for the Visual Studio build step:

    Components\**\*.vcxproj;-:**\*Test.vcxproj
    

    While this pattern works for the NuGet pack step:

    **/*.csproj;!**/*Test*.csproj;!**/_nuget/**
    

    Note the difference from using ! to using -: I think the determining factor is the new "Version" drop down at the top of each build step. For example, in my case, the NuGet build step says Version 2.*, while the Visual Studio build step says Version 1.*.