Skip to content

Commit 990085b

Browse files
committed
Merge pull request #320 from matthid/fsharp_core_default
overwrite the fallback folder for fsharp binary.
2 parents 29a41a3 + b725852 commit 990085b

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/fsharp/fsi/fsi.fs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2293,6 +2293,15 @@ type FsiEvaluationSession (fsi: FsiEvaluationSessionHostConfig, argv:string[], i
22932293
let defaultFSharpBinariesDir = System.AppDomain.CurrentDomain.BaseDirectory
22942294
let currentDirectory = Directory.GetCurrentDirectory()
22952295
#endif
2296+
// When used as part of FCS we cannot assume the current process is fsi.exe
2297+
// So we try to fallback to the default compiler dir.
2298+
let defaultFSharpBinariesDir =
2299+
let containsRequiredFiles =
2300+
[ "FSharp.Core.dll"; "FSharp.Core.sigdata"; "FSharp.Core.optdata" ]
2301+
|> Seq.map (fun file -> Path.Combine(defaultFSharpBinariesDir, file))
2302+
|> Seq.forall Internal.Utilities.FSharpEnvironment.safeExists
2303+
if containsRequiredFiles then defaultFSharpBinariesDir
2304+
else Internal.Utilities.FSharpEnvironment.BinFolderOfDefaultFSharpCompiler(None).Value
22962305

22972306
let tcConfigB =
22982307
TcConfigBuilder.CreateNew(defaultFSharpBinariesDir,

0 commit comments

Comments
 (0)