7

Is it possible to use an app.config file from a F# script (fsx) file? If so, how? Where do I put the file and what will it be called?

Aidan
  • 4,783
  • 5
  • 34
  • 58
  • 4
    Already answered here: http://stackoverflow.com/questions/645622/app-config-and-f-interactive-not-working – Joe B. Dec 11 '12 at 04:44
  • Alternatively here if you have a heavy use of ConfigurationManager in referenced libraries: https://stackoverflow.com/questions/6150644/change-default-app-config-at-runtime/6151688#6151688 – Lamarth Sep 01 '20 at 14:08

1 Answers1

0

The linked question by @JoeB provides 2 answers which are more suited to F# Interactive than .fsx scripts. I provide a good solution for F# scripts below:

Given this app.config file:

<configuration>
    <appSettings>
        <add key="foo" value="bar"/>
    </appSettings>
</configuration>

Read foo this way:

let appConfigPath = System.IO.Path.Combine(Directory.GetCurrentDirectory(), "app.config")
let fileMap = ExeConfigurationFileMap()
fileMap.ExeConfigFilename <- appConfigPath
let config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None)
let foo = config.AppSettings.Settings.["foo"].Value
Console.WriteLine(foo)
knocte
  • 16,941
  • 11
  • 79
  • 125