From b13dcdaed65370db1b201906ef5f314047e056b1 Mon Sep 17 00:00:00 2001 From: Hans van Bakel Date: Wed, 7 Jun 2017 18:27:33 -0700 Subject: [PATCH] Fixes #13 --- Project2015To2017/Definition/PackageReference.cs | 1 + Project2015To2017/PackageReferenceTransformation.cs | 3 ++- Project2015To2017/Writing/ProjectWriter.cs | 8 +++++++- .../PackageReferenceTransformationTest.cs | 5 +++-- Project2015To2017Tests/TestFiles/packages.config | 1 + 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Project2015To2017/Definition/PackageReference.cs b/Project2015To2017/Definition/PackageReference.cs index f8bd692..8f3614d 100644 --- a/Project2015To2017/Definition/PackageReference.cs +++ b/Project2015To2017/Definition/PackageReference.cs @@ -4,5 +4,6 @@ internal sealed class PackageReference { public string Id { get; set; } public string Version { get; set; } + public bool IsDevelopmentDependency { get; set; } } } diff --git a/Project2015To2017/PackageReferenceTransformation.cs b/Project2015To2017/PackageReferenceTransformation.cs index 78ab67f..047d385 100644 --- a/Project2015To2017/PackageReferenceTransformation.cs +++ b/Project2015To2017/PackageReferenceTransformation.cs @@ -40,7 +40,8 @@ public Task TransformAsync(XDocument projectFile, DirectoryInfo projectFolder, P definition.PackageReferences = document.Element("packages").Elements("package").Select(x => new PackageReference { Id = x.Attribute("id").Value, - Version = x.Attribute("version").Value + Version = x.Attribute("version").Value, + IsDevelopmentDependency = x.Attribute("developmentDependency")?.Value == "true" }).Concat(testReferences).ToArray(); foreach (var reference in definition.PackageReferences) diff --git a/Project2015To2017/Writing/ProjectWriter.cs b/Project2015To2017/Writing/ProjectWriter.cs index 630d860..686291d 100644 --- a/Project2015To2017/Writing/ProjectWriter.cs +++ b/Project2015To2017/Writing/ProjectWriter.cs @@ -33,7 +33,13 @@ public void Write(Project project, FileInfo outputFile) var nugetReferences = new XElement("ItemGroup"); foreach (var packageReference in project.PackageReferences) { - nugetReferences.Add(new XElement("PackageReference", new XAttribute("Include", packageReference.Id), new XAttribute("Version", packageReference.Version))); + var reference = new XElement("PackageReference", new XAttribute("Include", packageReference.Id), new XAttribute("Version", packageReference.Version)); + if (packageReference.IsDevelopmentDependency) + { + reference.Add(new XElement("PrivateAssets", "all")); + } + + nugetReferences.Add(reference); } projectNode.Add(nugetReferences); diff --git a/Project2015To2017Tests/PackageReferenceTransformationTest.cs b/Project2015To2017Tests/PackageReferenceTransformationTest.cs index 2b9f0d5..8469090 100644 --- a/Project2015To2017Tests/PackageReferenceTransformationTest.cs +++ b/Project2015To2017Tests/PackageReferenceTransformationTest.cs @@ -22,7 +22,7 @@ public async Task AddsTestPackagesAsync() await transformation.TransformAsync(doc, directoryInfo, project).ConfigureAwait(false); - Assert.AreEqual(7, project.PackageReferences.Count); + Assert.AreEqual(8, project.PackageReferences.Count); Assert.AreEqual(1, project.PackageReferences.Count(x => x.Id == "Microsoft.NET.Test.Sdk" && x.Version == "15.0.0")); } @@ -37,7 +37,8 @@ public async Task TransformsPackagesAsync() await transformation.TransformAsync(doc, directoryInfo, project).ConfigureAwait(false); - Assert.AreEqual(4, project.PackageReferences.Count); + Assert.AreEqual(5, project.PackageReferences.Count); + Assert.AreEqual(1, project.PackageReferences.Count(x => x.IsDevelopmentDependency)); Assert.AreEqual(1, project.PackageReferences.Count(x => x.Id == "Microsoft.Owin" && x.Version == "3.1.0")); } } diff --git a/Project2015To2017Tests/TestFiles/packages.config b/Project2015To2017Tests/TestFiles/packages.config index 83a134b..b403aab 100644 --- a/Project2015To2017Tests/TestFiles/packages.config +++ b/Project2015To2017Tests/TestFiles/packages.config @@ -4,4 +4,5 @@ + \ No newline at end of file