dotnet / dotnet/msbuild

wildcard src\**\*.*proj not being expanded

Open
#2,452 2 comments 0 reactions 0 assignees View on GitHub
Feature - Globbing symlink triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 6h
Merged PRs (30d)
139

Description

When an invalid symlink folder exist under a path to be expanded line 194 in FileMatcher.cs throws which is then caught and wildcard expansion is not done due to it.

Certain build engines will create TestSandbox folders on failed unit test and if the user goes and deletes the location to where the sandbox points to any future builds of their enlistment will fail.

```
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileSystemEnumerableIterator`1.CommonInit()
at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)
at System.IO.Directory.GetFiles(String path, String searchPattern)
at Microsoft.Build.Shared.FileMatcher.GetAccessibleFiles(String path, String filespec, String projectDirectory, Boolean stripProjectDirectory) in d:\git\MSBuild\src\Shared\FileMatcher.cs:line 194
at Microsoft.Build.Shared.FileMatcher.GetAccessibleFileSystemEntries(FileSystemEntity entityType, String path, String pattern, String projectDirectory, Boolean stripProjectDirectory) in d:\git\MSBuild\src\Shared\FileMatcher.cs:line 121
at Microsoft.Build.Shared.FileMatcher.GetFilesRecursiveStep(RecursionState recursionState, String projectDirectory, Boolean stripProjectDirectory, GetFileSystemEntries getFileSystemEntries) in d:\git\MSBuild\src\Shared\FileMatcher.cs:line 846
at Microsoft.Build.Shared.FileMatcher.GetFilesRecursive(IList`1 listOfFiles, RecursionState recursionState, String projectDirectory, Boolean stripProjectDirectory, GetFileSystemEntries getFileSystemEntries, IList`1 searchesToExclude, Dictionary`2 searchesToExcludeInSubdirs) in d:\git\MSBuild\src\Shared\FileMatcher.cs:line 710
at Microsoft.Build.Shared.FileMatcher.GetFilesRecursive(IList`1 listOfFiles, RecursionState recursionState, String projectDirectory, Boolean stripProjectDirectory, GetFileSystemEntries getFileSystemEntries, IList`1 searchesToExclude, Dictionary`2 searchesToExcludeInSubdirs) in d:\git\MSBuild\src\Shared\FileMatcher.cs:line 805
at Microsoft.Build.Shared.FileMatcher.GetFilesRecursive(IList`1 listOfFiles, RecursionState recursionState, String projectDirectory, Boolean stripProjectDirectory, GetFileSystemEntries getFileSystemEntries, IList`1 searchesToExclude, Dictionary`2 searchesToExcludeInSubdirs) in d:\git\MSBuild\src\Shared\FileMatcher.cs:line 805
at Microsoft.Build.Shared.FileMatcher.GetFilesRecursive(IList`1 listOfFiles, RecursionState recursionState, String projectDirectory, Boolean stripProjectDirectory, GetFileSystemEntries getFileSystemEntries, IList`1 searchesToExclude, Dictionary`2 searchesToExcludeInSubdirs) in d:\git\MSBuild\src\Shared\FileMatcher.cs:line 805
at Microsoft.Build.Shared.FileMatcher.GetFilesRecursive(IList`1 listOfFiles, RecursionState recursionState, String projectDirectory, Boolean stripProjectDirectory, GetFileSystemEntries getFileSystemEntries, IList`1 searchesToExclude, Dictionary`2 searchesToExcludeInSubdirs) in d:\git\MSBuild\src\Shared\FileMatcher.cs:line 805
at Microsoft.Build.Shared.FileMatcher.GetFilesRecursive(IList`1 listOfFiles, RecursionState recursionState, String projectDirectory, Boolean stripProjectDirectory, GetFileSystemEntries getFileSystemEntries, IList`1 searchesToExclude, Dictionary`2 searchesToExcludeInSubdirs) in d:\git\MSBuild\src\Shared\FileMatcher.cs:line 805
at Microsoft.Build.Shared.FileMatcher.GetFilesRecursive(IList`1 listOfFiles, RecursionState recursionState, String projectDirectory, Boolean stripProjectDirectory, GetFileSystemEntries getFileSystemEntries, IList`1 searchesToExclude, Dictionary`2 searchesToExcludeInSubdirs) in d:\git\MSBuild\src\Shared\FileMatcher.cs:line 805
at Microsoft.Build.Shared.FileMatcher.GetFilesRecursive(IList`1 listOfFiles, RecursionState recursionState, String projectDirectory, Boolean stripProjectDirectory, GetFileSystemEntries getFileSystemEntries, IList`1 searchesToExclude, Dictionary`2 searchesToExcludeInSubdirs) in d:\git\MSBuild\src\Shared\FileMatcher.cs:line 805
at Microsoft.Build.Shared.FileMatcher.GetFiles(String projectDirectoryUnescaped, String filespecUnescaped, IEnumerable`1 excludeSpecsUnescaped, GetFileSystemEntries getFileSystemEntries, DirectoryExists directoryExists) in d:\git\MSBuild\src\Shared\FileMatcher.cs:line 1813
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.