From 3c57f420528f1f2ac69e7238a4db0decaf09e28f Mon Sep 17 00:00:00 2001 From: Rafael Vuijk Date: Tue, 11 Aug 2026 13:40:36 +0000 Subject: [PATCH] Stop the F# wrapper hardcoding its documentation path `dotnet build -c release` -- lowercase -- could not build AngouriMath.FSharp from clean on a case-sensitive filesystem: FSC : error FS0193: Could not find a part of the path '.../AngouriMath.FSharp/bin/Release/netstandard2.0/AngouriMath.FSharp.XML' The fsproj set DocumentationFile to a literal bin\Release\... under a condition on '$(Configuration)|$(Platform)'=='Release|AnyCPU'. MSBuild compares that case-insensitively, so with -c release the condition matched and the doc file was directed at bin/Release/ while $(OutputPath) resolved to bin/release/ -- a directory that does not exist on Linux or macOS, and the compiler cannot create the file in it. GenerateDocumentationFile puts the XML beside the assembly whichever way the configuration is spelled, and needs no path at all. AngouriMath.Terminal.Lib already does it this way; the main library uses $(Configuration) in its path, so neither was affected. Why it went unnoticed: -c Release works, and so does -c release once a capitalised build has created the directory, so it only fails on a clean checkout that never used the capitalised spelling. Verified both spellings from a clean bin and obj: 130 F# tests pass under -c release, and under -c Release the build still produces AngouriMath.FSharp.xml and the .nupkg. --- .../Wrappers/AngouriMath.FSharp/AngouriMath.FSharp.fsproj | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Sources/Wrappers/AngouriMath.FSharp/AngouriMath.FSharp.fsproj b/Sources/Wrappers/AngouriMath.FSharp/AngouriMath.FSharp.fsproj index 35dc185d8..4c82eb5e4 100644 --- a/Sources/Wrappers/AngouriMath.FSharp/AngouriMath.FSharp.fsproj +++ b/Sources/Wrappers/AngouriMath.FSharp/AngouriMath.FSharp.fsproj @@ -14,12 +14,8 @@ true - - bin\Release\netstandard2.0\AngouriMath.FSharp.XML - - - - bin\Debug\netstandard2.0\AngouriMath.FSharp.XML + + true