fsdocs build currently auto-discovers projects from a solution only when the working directory contains exactly one .sln file.
With the newer .slnx solution format, project cracking falls back to the shallow *.fsproj directory scan instead of loading projects from the solution. This can miss projects that are included in the solution but live outside the fallback scan depth.
Relevant line:
|
match Directory.GetFiles(slnDir, "*.sln") with |
Possible single-line patch
--- a/src/fsdocs-tool/ProjectCracker.fs
+++ b/src/fsdocs-tool/ProjectCracker.fs
@@ -507,7 +507,7 @@ module Crack =
let collectionName, projectFiles =
match projects, ignoreProjects with
| [], false ->
- match Directory.GetFiles(slnDir, "*.sln") with
+ match Array.append (Directory.GetFiles(slnDir, "*.sln")) (Directory.GetFiles(slnDir, "*.slnx")) with
| [| sln |] ->
printfn "getting projects from solution file %s" sln
fsdocs build currently auto-discovers projects from a solution only when the working directory contains exactly one .sln file.
With the newer .slnx solution format, project cracking falls back to the shallow *.fsproj directory scan instead of loading projects from the solution. This can miss projects that are included in the solution but live outside the fallback scan depth.
Relevant line:
FSharp.Formatting/src/fsdocs-tool/ProjectCracker.fs
Line 510 in 4ed3a99
Possible single-line patch