diff --git a/src/Paket.Core/Installation/ScriptGeneration.fs b/src/Paket.Core/Installation/ScriptGeneration.fs index bdc6b24e08..3e429216d3 100644 --- a/src/Paket.Core/Installation/ScriptGeneration.fs +++ b/src/Paket.Core/Installation/ScriptGeneration.fs @@ -55,9 +55,9 @@ module ScriptGeneration = refls |> List.filter ( fun ref -> if scriptType = ScriptType.FSharp then match ref with - | Assembly info -> not (String.containsIgnoreCase "FSharp.Core" info.Name) - | Framework info -> not (String.containsIgnoreCase "FSharp.Core" info) - | LoadScript info -> not (String.containsIgnoreCase "FSharp.Core" info) + | Assembly info -> not (String.startsWithIgnoreCase "FSharp.Core" info.Name) + | Framework info -> not (String.startsWithIgnoreCase "FSharp.Core" info) + | LoadScript info -> not (String.startsWithIgnoreCase "FSharp.Core" info) else true ) diff --git a/tests/Paket.Tests/ScriptGeneration/LoadingScriptTests.fs b/tests/Paket.Tests/ScriptGeneration/LoadingScriptTests.fs index 55b5d15f09..be7e8746f9 100644 --- a/tests/Paket.Tests/ScriptGeneration/LoadingScriptTests.fs +++ b/tests/Paket.Tests/ScriptGeneration/LoadingScriptTests.fs @@ -51,7 +51,44 @@ let ``generateFSharpScript generates load script``() = | Generate [ ReferenceType.LoadScript _ ] -> () | _ -> Assert.Fail("generated script was expected to be a single load script") +[] +let ``generateFSharpScript not generates load script for FSharp.Core``() = + let output = ScriptGeneration.generateScript ScriptType.FSharp { + PackageName = Paket.Domain.PackageName "FSharp.Core" + DependentScripts = List.empty + FrameworkReferences = List.empty + OrderedDllReferences = List.empty + PackageLoadScripts = ["foo.fsx"] + } + + match output with + | DoNotGenerate -> () + | _ -> Assert.Fail("generated script was expected to be a single load script") + +let ``generateFSharpScript generates load script if contains FSharp.Core but not FSharp.Core - case`` () = + [ + "Company.FSharp.Core" + "CompanyFSharp.Core" + "FSharp.Core.Company" + "FSharp.CoreCompany" + "CompanyFsharp.Core.Company" + "Company.Fsharp.CoreCompany" + ] +[] +[] +let ``generateFSharpScript generates load script if contains FSharp.Core but not FSharp.Core`` packageName = + let output = ScriptGeneration.generateScript ScriptType.FSharp { + PackageName = Paket.Domain.PackageName packageName + DependentScripts = List.empty + FrameworkReferences = List.empty + OrderedDllReferences = List.empty + PackageLoadScripts = ["foo.fsx"] + } + + match output with + | Generate [ ReferenceType.LoadScript _ ] -> () + | _ -> Assert.Fail("generated script was expected to be a single load script") let lockFileData = """NUGET remote: http://www.nuget.org/api/v2