diff --git a/src/NuGetizer.Tasks/CreatePackage.cs b/src/NuGetizer.Tasks/CreatePackage.cs index 4bec60f9..92fb15b7 100644 --- a/src/NuGetizer.Tasks/CreatePackage.cs +++ b/src/NuGetizer.Tasks/CreatePackage.cs @@ -240,7 +240,8 @@ void AddDependencies(Manifest manifest) { var dependencies = from item in Contents where PackFolderKind.Dependency.Equals(item.GetMetadata(MetadataName.PackFolder), StringComparison.OrdinalIgnoreCase) && - !"all".Equals(item.GetMetadata(MetadataName.PrivateAssets), StringComparison.OrdinalIgnoreCase) + (!"all".Equals(item.GetMetadata(MetadataName.PrivateAssets), StringComparison.OrdinalIgnoreCase) || + "true".Equals(item.GetMetadata("Pack"), StringComparison.OrdinalIgnoreCase)) select new Dependency { Id = item.ItemSpec, diff --git a/src/NuGetizer.Tests/InlineProjectTests.cs b/src/NuGetizer.Tests/InlineProjectTests.cs index 362265c9..892998ec 100644 --- a/src/NuGetizer.Tests/InlineProjectTests.cs +++ b/src/NuGetizer.Tests/InlineProjectTests.cs @@ -1057,7 +1057,7 @@ public void when_packagepath_ends_in_path_then_packs_basedir_dir() [Fact] public void when_dependency_is_development_dependency_then_can_explicitly_pack_it() { - var result = Builder.BuildProject( + var project = """ @@ -1068,8 +1068,8 @@ public void when_dependency_is_development_dependency_then_can_explicitly_pack_i - """ - , "GetPackageContents", output); + """; + var result = Builder.BuildProject(project, "GetPackageContents", output); result.AssertSuccess(output); @@ -1078,7 +1078,23 @@ public void when_dependency_is_development_dependency_then_can_explicitly_pack_i Identity = "ThisAssembly.Constants", PackFolder = "Dependency", })); - } + result = Builder.BuildProject(project, "Pack", output); + + result.AssertSuccess(output); + + var package = result.Items[0].ItemSpec; + File.Exists(package); + + using (var archive = ZipFile.OpenRead(package)) + { + Assert.Contains(archive.Entries, entry => entry.FullName == "scenario.nuspec"); + using var stream = archive.Entries.First(x => x.FullName == "scenario.nuspec").Open(); + var manifest = Manifest.ReadFrom(stream, false); + Assert.NotEmpty(manifest.Metadata.DependencyGroups); + Assert.NotEmpty(manifest.Metadata.DependencyGroups.First().Packages); + Assert.Equal("ThisAssembly.Constants", manifest.Metadata.DependencyGroups.First().Packages.First().Id); + } + } } }