@@ -1889,17 +1889,17 @@ type ProjectFile with
1889
1889
1890
1890
member this.FindOrCreateReferencesFile () = ProjectFile.FindOrCreateReferencesFile ( FileInfo this.FileName)
1891
1891
1892
- /// Finds all project files
1893
- static member FindAllProjectFiles folder : FileInfo [] =
1892
+ // searches directory and all subdirectories for the search pattern, skipping known problematic directories
1893
+ static member SearchAllProjectRelatedFiles searchPattern folder : FileInfo [] =
1894
1894
let paketPath = Path.Combine( folder, Constants.PaketFilesFolderName) |> normalizePath
1895
1895
1896
1896
let findAllFiles folder =
1897
1897
let rec search topLevel ( di : DirectoryInfo ) =
1898
1898
try
1899
1899
if verbose then
1900
- verbosefn " Searching in %s " di.FullName
1900
+ verbosefn " Searching %s in %s " searchPattern di.FullName
1901
1901
1902
- let files = di.GetFiles( " *proj* " , SearchOption.TopDirectoryOnly)
1902
+ let files = di.GetFiles( searchPattern , SearchOption.TopDirectoryOnly)
1903
1903
di.GetDirectories()
1904
1904
|> Array.filter ( fun di ->
1905
1905
try
@@ -1934,6 +1934,10 @@ type ProjectFile with
1934
1934
search true ( DirectoryInfo folder)
1935
1935
1936
1936
findAllFiles folder
1937
+
1938
+ /// Finds all project files
1939
+ static member FindAllProjectFiles folder : FileInfo [] =
1940
+ ProjectFile.SearchAllProjectRelatedFiles " *proj*" folder
1937
1941
|> Array.filter ProjectFile.isSupportedFile
1938
1942
1939
1943
/// Finds all project files
@@ -2112,3 +2116,11 @@ type ProjectFile with
2112
2116
}
2113
2117
2114
2118
( coreInfo, optionalInfo)
2119
+
2120
+ member self.TryFindConfigFile () =
2121
+ let isAppOrWebConfig ( fileInfo : FileInfo ) =
2122
+ let baseName = fileInfo.Name.ToLowerInvariant()
2123
+ baseName = " app.config" || baseName = " web.config"
2124
+
2125
+ ProjectFile.SearchAllProjectRelatedFiles " *.config" ( FileInfo self.FileName) .DirectoryName
2126
+ |> Array.tryFind isAppOrWebConfig
0 commit comments