diff --git a/src/Containers/packaging/package.csproj b/src/Containers/packaging/package.csproj
index 5b6bf2b952b7..d4a2b276bb06 100644
--- a/src/Containers/packaging/package.csproj
+++ b/src/Containers/packaging/package.csproj
@@ -21,11 +21,12 @@
git
containers;docker;Microsoft.NET.Build.Containers
README.md
+ $(TargetsForTfmSpecificContentInPackage);PreparePackageReleaseNotesFromFile;AddItemsForPackaging;$(GenerateNuspecDependsOn);
+ OutputItemType="ContainerLibraryOutputNet472"
+ Condition="'$(DotNetBuildSourceOnly)' != 'true'" />
-
+
-
-
- ../docs/ReleaseNotes/v8.0.300.md
- $([System.IO.File]::ReadAllText($(PackageReleaseNotesFile)))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+ ../docs/ReleaseNotes/v8.0.300.md
+ $([System.IO.File]::ReadAllText($(PackageReleaseNotesFile)))
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+ <_ContainerizeBinaryDependency Include="@(NecessaryContainerizeBinaryDependencies)" />
+ <_ContainerizeBinaryDependency Include="@(ContainerizeBinaryOutput)" />
+
+
-
-
-
-
-
+
+
+
+
+
+
+ <_ContainerTaskFrameworkDependency Include="@(NecessaryNet472ContainerTaskDependencies)" PackagePath="tasks/$(VSCompatTargetFramework)/" />
+ <_ContainerTaskFrameworkDependency Include="@(ContainerLibraryOutputNet472)" PackagePath="tasks/$(VSCompatTargetFramework)/" />
+
+
-
-
-
-
+
+
+
+
+
+
-
-
-
+ <_ContainerTaskCoreDependency Include="@(NecessaryNetContainerTaskDependencies)" />
+ <_ContainerTaskCoreDependency Include="@(DotNetCliUtilsLibraryOutput)" />
+ <_ContainerTaskCoreDependency Include="$(ArtifactsDir)bin/Microsoft.NET.Build.Containers/$(Configuration)/$(SdkTargetFramework)/Microsoft.NET.Build.Containers.deps.json" />
+ <_ContainerTaskCoreDependency Include="@(ContainerLibraryOutput)" />
+
+
diff --git a/test/Microsoft.NET.Build.Containers.IntegrationTests/PackageTests.cs b/test/Microsoft.NET.Build.Containers.IntegrationTests/PackageTests.cs
index 3aa57a3a7670..6d6f01f6ec49 100644
--- a/test/Microsoft.NET.Build.Containers.IntegrationTests/PackageTests.cs
+++ b/test/Microsoft.NET.Build.Containers.IntegrationTests/PackageTests.cs
@@ -68,12 +68,13 @@ public void PackageContentTest()
{
string ignoredZipFileEntriesPrefix = "package/services/metadata";
var netTFM = ToolsetInfo.CurrentTargetFramework;
- IReadOnlyList packageContents = new List()
+ var expectedPackageContents = new List
{
"_rels/.rels",
"[Content_Types].xml",
"build/Microsoft.NET.Build.Containers.props",
"build/Microsoft.NET.Build.Containers.targets",
+ "containerize/containerize.deps.json",
"containerize/containerize.dll",
"containerize/containerize.runtimeconfig.json",
"containerize/Microsoft.DotNet.Cli.Utils.dll",
@@ -102,6 +103,9 @@ public void PackageContentTest()
"containerize/NuGet.Protocol.dll",
"containerize/NuGet.Versioning.dll",
"containerize/System.CommandLine.dll",
+ "containerize/System.IO.Hashing.dll",
+ "containerize/System.Security.Cryptography.Pkcs.dll",
+ "containerize/System.Security.Cryptography.ProtectedData.dll",
"containerize/Valleysoft.DockerCredsProvider.dll",
"Icon.png",
"Microsoft.NET.Build.Containers.nuspec",
@@ -129,18 +133,22 @@ public void PackageContentTest()
$"tasks/{netTFM}/NuGet.Packaging.dll",
$"tasks/{netTFM}/NuGet.Versioning.dll",
$"tasks/{netTFM}/Valleysoft.DockerCredsProvider.dll"
- };
+ }.ToHashSet();
(string? packageFilePath, string? packageVersion) = ToolsetUtils.GetContainersPackagePath();
using ZipArchive archive = new(File.OpenRead(packageFilePath ?? string.Empty), ZipArchiveMode.Read, false);
- IEnumerable actualEntries = archive.Entries
+ var actualEntries = archive.Entries
.Select(e => e.FullName)
.Where(e => !e.StartsWith(ignoredZipFileEntriesPrefix, StringComparison.InvariantCultureIgnoreCase))
- .OrderBy(e => e);
+ .ToHashSet();
+
+ expectedPackageContents.Except(actualEntries)
+ .Should()
+ .BeEmpty($"{Path.GetFileName(packageFilePath)} is missing expected entries. Please add the entry to the list, if the addition is expected.");
- actualEntries
+ actualEntries.Except(expectedPackageContents)
.Should()
- .BeEquivalentTo(packageContents, $"{Path.GetFileName(packageFilePath)} content differs from expected. Please add the entry to the list, if the addition is expected.");
+ .BeEmpty($"{Path.GetFileName(packageFilePath)} contains unexpected entries. Please remove the entry from the list, if the removal is expected.");
}
}