@@ -1889,17 +1889,17 @@ type ProjectFile with
18891889
18901890 member this.FindOrCreateReferencesFile () = ProjectFile.FindOrCreateReferencesFile ( FileInfo this.FileName)
18911891
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 [] =
18941894 let paketPath = Path.Combine( folder, Constants.PaketFilesFolderName) |> normalizePath
18951895
18961896 let findAllFiles folder =
18971897 let rec search topLevel ( di : DirectoryInfo ) =
18981898 try
18991899 if verbose then
1900- verbosefn " Searching in %s " di.FullName
1900+ verbosefn " Searching %s in %s " searchPattern di.FullName
19011901
1902- let files = di.GetFiles( " *proj* " , SearchOption.TopDirectoryOnly)
1902+ let files = di.GetFiles( searchPattern , SearchOption.TopDirectoryOnly)
19031903 di.GetDirectories()
19041904 |> Array.filter ( fun di ->
19051905 try
@@ -1934,6 +1934,10 @@ type ProjectFile with
19341934 search true ( DirectoryInfo folder)
19351935
19361936 findAllFiles folder
1937+
1938+ /// Finds all project files
1939+ static member FindAllProjectFiles folder : FileInfo [] =
1940+ ProjectFile.SearchAllProjectRelatedFiles " *proj*" folder
19371941 |> Array.filter ProjectFile.isSupportedFile
19381942
19391943 /// Finds all project files
@@ -2112,3 +2116,11 @@ type ProjectFile with
21122116 }
21132117
21142118 ( 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