From dab3e8a7730bd9f64b6ece03df7e81a7d00449eb Mon Sep 17 00:00:00 2001 From: "Kevin Ransom (msft)" Date: Mon, 30 Nov 2020 16:03:15 -0800 Subject: [PATCH] Fix issue10550 Gesktop FSI accessing System.Configuration (#10572) --- src/fsharp/DotNetFrameworkDependencies.fs | 2 ++ .../FSharpScriptTests.fs | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/fsharp/DotNetFrameworkDependencies.fs b/src/fsharp/DotNetFrameworkDependencies.fs index 0fcb0e6d9b8..cc3cc0800fb 100644 --- a/src/fsharp/DotNetFrameworkDependencies.fs +++ b/src/fsharp/DotNetFrameworkDependencies.fs @@ -302,6 +302,7 @@ module internal FSharp.Compiler.DotNetFrameworkDependencies yield "System.Data" yield "System.Drawing" yield "System.Core" + yield "System.Configuration" yield getFSharpCoreLibraryName if useFsiAuxLib then yield getFsiLibraryName @@ -378,6 +379,7 @@ module internal FSharp.Compiler.DotNetFrameworkDependencies yield "System.Xml" yield "System.Runtime.Remoting" yield "System.Runtime.Serialization.Formatters.Soap" + yield "System.Configuration" yield "System.Data" yield "System.Deployment" yield "System.Design" diff --git a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharpScriptTests.fs b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharpScriptTests.fs index aacbdb2be56..8deed2f994d 100644 --- a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharpScriptTests.fs +++ b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharpScriptTests.fs @@ -117,6 +117,19 @@ stacktype.Name = "Stack" | Ok(_) -> Assert.False(true, "expected a failure") | Error(ex) -> Assert.IsAssignableFrom(typeof, ex) + + [] + member _.``Script using System.Configuration succeeds``() = + use script = new FSharpScript() + let result, errors = script.Eval(""" +#r "nuget:System.Configuration.ConfigurationManager,5.0.0" +open System.Configuration +System.Configuration.ConfigurationManager.AppSettings.Item "Environment" <- "LOCAL" """) + Assert.Empty(errors) + match result with + | Ok(_) -> () + | Error(ex) -> Assert.True(true, "expected no failures") + [] [] // No argument [] // empty argument