diff --git a/src/Paket.Core/PaketConfigFiles/LockFile.fs b/src/Paket.Core/PaketConfigFiles/LockFile.fs index 19ab7c8e5d..91006224e4 100644 --- a/src/Paket.Core/PaketConfigFiles/LockFile.fs +++ b/src/Paket.Core/PaketConfigFiles/LockFile.fs @@ -938,7 +938,8 @@ type LockFile (fileName:string, groups: Map) = let groupName,_packageName = visitKey for dep in deps do let deps = this.GetDirectDependenciesOfSafe(groupName,dep,referencesFile.FileName) - toVisit := Set.add ((groupName,dep),p,deps) !toVisit + let packagageSettings = { p with Settings = { p.Settings with Aliases = Map.empty }} + toVisit := Set.add ((groupName,dep),packagageSettings,deps) !toVisit let emitted = HashSet<_>() [while visited.Count > 0 do diff --git a/tests/Paket.Tests/InstallModel/PaketPropsTests.fs b/tests/Paket.Tests/InstallModel/PaketPropsTests.fs index 09b91ca5ea..03675ba766 100644 --- a/tests/Paket.Tests/InstallModel/PaketPropsTests.fs +++ b/tests/Paket.Tests/InstallModel/PaketPropsTests.fs @@ -102,6 +102,43 @@ group Other1 | l -> Assert.Fail(sprintf "expected one ItemGroup but was '%A'" l) + +[] +let ``should not inherit alias settings``() = + + let lockFile = """NUGET + remote: https://api.nuget.org/v3/index.json + Argu (4.2.1) + FSharp.Core (>= 3.1.2) + FSharp.Core (3.1.2.5) + Newtonsoft.Json (>= 11.0.2) + Newtonsoft.Json (11.0.5) +""" + + let refFileContent = """ +Argu + alias Argu.dll Argu_Alias + +""" + + let lockFile = LockFile.Parse("", toLines lockFile) + + let refFile = ReferencesFile.FromLines(toLines refFileContent) + + let packages = + [ for kv in refFile.Groups do + let packagesInGroup,_ = lockFile.GetOrderedPackageHull(kv.Key, refFile) + yield! packagesInGroup ] + + let (_, p, _) = packages[0] + Assert.Zero(p.Settings.Aliases.Count) + + let (_, p, _) = packages[1] + Assert.Zero(p.Settings.Aliases.Count) + + let (_, p, _) = packages[2] + Assert.AreEqual(1, p.Settings.Aliases.Count) + [] let ``should create props file for design mode with group restrictions``() =