FSharpCompilerPath Override for Version-Pinned Upgrade Testing
0 reputation · 18 Jan 2026, 23:48 UTC
This question examines the extent to which the FSharpCompilerPath override in an .fsharpproj file can isolate compiler-version-specific breakage during upgrade testing. The documented feature allows project maintainers to pin a known-good F# compiler version, thereby preserving incremental build state when transitioning between compiler releases. The goal is to determine whether this configuration alone prevents build failure when incremental state, type providers, and session persistence from F# Interactive interact with the overridden path.
A remaining uncertainty involves how paket.dependencies resolution and the F# 6.0 inline function semantics shift, which diverge from 5.x behavior, interact with the pinned compiler path. Specifically, it is unclear whether package version conflicts discovered during restore will automatically revert, or whether the override fully shields the incremental build pipeline from API-level breakage introduced by the newer compiler.
Does the FSharpCompilerPath override prevent incremental build failure when compiler API changes invalidate existing type providers? Should F# package restore automatically revert NuGet package versions when paket.dependencies conflicts surface after a compiler upgrade? How does the F# Interactive #load recovery pattern interact with a pinned compiler path during session restart after an upgrade failure?