FSharp.FsxConfig
1.0.1
dotnet add package FSharp.FsxConfig --version 1.0.1
NuGet\Install-Package FSharp.FsxConfig -Version 1.0.1
<PackageReference Include="FSharp.FsxConfig" Version="1.0.1" />
<PackageVersion Include="FSharp.FsxConfig" Version="1.0.1" />
<PackageReference Include="FSharp.FsxConfig" />
paket add FSharp.FsxConfig --version 1.0.1
#r "nuget: FSharp.FsxConfig, 1.0.1"
#addin nuget:?package=FSharp.FsxConfig&version=1.0.1
#tool nuget:?package=FSharp.FsxConfig&version=1.0.1
FSharp.FsxConfig
A simple tool that allows using fsx files for configuration.
Note
There is a convention in place for the name of the function that is changing the config in the script file: changeConfiguration
Limitations
Doesn't support saving a new configuration at runtime.
Usage example
You can watch the example in tests\FSharp.FsxConfig.Tests or follow the description below:
dotnet new console -lang F#
dotnet add package FSharp.FsxConfig
Change the content of the program.fs with:
open FSharp.FsxConfig
type MyConfiguration = {
athing: int
something: string
}
module MyConfiguration =
let internal Default: MyConfiguration = { athing = 1; something = "default value" }
MyConfiguration.Default
|> applyScriptConfiguration "change app configuration.fsx"
|> Result.bind (applyScriptConfiguration "config.fsx")
|> printfn "Hello from F# %A"
Create some 2 script files (check names from above example, and replace your project build output in the #r include):
#r "bin/Debug/net6.0/REPLACE_ME_WITH_YOUR_PROJECT_NAME.dll"
let changeConfiguration (conf: Program.MyConfiguration) =
// you can have comments, the tooling will let you know if the typing is out of synch
{ conf with athing = conf.athing + 10 }
dotnet run
Troubleshooting
- something is wrong with files location, references, etc. you can see the details of errors in console by enabling verbose messages:
FSharp.FsxConfig.verbose <- true
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- FSharp.Compiler.Service (>= 41.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
- Removed the need for Thoth.Json.Net