diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index b1bcf44222..3801670993 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -85,8 +85,12 @@
+
+
+
+
diff --git a/src/ServiceControlInstaller.Packaging.UnitTests/DeploymentPackageTests.cs b/src/ServiceControlInstaller.Packaging.UnitTests/DeploymentPackageTests.cs
index b4fb53fd8e..9f6f19af1c 100644
--- a/src/ServiceControlInstaller.Packaging.UnitTests/DeploymentPackageTests.cs
+++ b/src/ServiceControlInstaller.Packaging.UnitTests/DeploymentPackageTests.cs
@@ -4,6 +4,8 @@ namespace Tests
using System.Diagnostics;
using System.IO;
using System.Linq;
+ using System.Runtime.InteropServices;
+ using Microsoft.AspNetCore.Http;
using NUnit.Framework;
[TestFixtureSource(typeof(DeploymentPackage), nameof(DeploymentPackage.All))]
@@ -30,7 +32,7 @@ public void CheckPackageStructure()
}
[Test]
- public void DuplicateAssemblyShouldHaveMatchingVersions()
+ public void DuplicateAssembliesInDeploymentUnitsShouldHaveMatchingVersions()
{
var detectedMismatches = new List();
@@ -46,6 +48,38 @@ public void DuplicateAssemblyShouldHaveMatchingVersions()
Assert.That(detectedMismatches, Is.Empty, $"Component assembly version mismatch detected");
}
+ [Test]
+ public void DuplicateAssembliesFromRuntimeShouldHaveMatchingVersions()
+ {
+ var detectedMismatches = new List();
+
+ var runtimeDirectory = new DirectoryInfo(RuntimeEnvironment.GetRuntimeDirectory());
+ var runtimeDeploymentUnit = new DeploymentPackage.DeploymentUnit(runtimeDirectory, ".NET Runtime");
+
+ foreach (var deploymentUnit in deploymentPackage.DeploymentUnits)
+ {
+ detectedMismatches.AddRange(GetAssemblyMismatches(deploymentUnit, runtimeDeploymentUnit));
+ }
+
+ Assert.That(detectedMismatches, Is.Empty, $"Component assembly version mismatch detected");
+ }
+
+ [Test]
+ public void DuplicateAssembliesFromASPNetCoreShouldHaveMatchingVersions()
+ {
+ var detectedMismatches = new List();
+
+ var aspNetCoreDirectory = new DirectoryInfo(Path.GetDirectoryName(typeof(HttpResponse).Assembly.Location));
+ var aspNetCoreDeploymentUnit = new DeploymentPackage.DeploymentUnit(aspNetCoreDirectory, "ASP.NET Core Runtime");
+
+ foreach (var deploymentUnit in deploymentPackage.DeploymentUnits)
+ {
+ detectedMismatches.AddRange(GetAssemblyMismatches(deploymentUnit, aspNetCoreDeploymentUnit));
+ }
+
+ Assert.That(detectedMismatches, Is.Empty, $"Component assembly version mismatch detected");
+ }
+
IEnumerable GetAssemblyMismatches(DeploymentPackage.DeploymentUnit leftDeploymentUnit, DeploymentPackage.DeploymentUnit rightDeploymentUnit)
{
var detectedMismatches = new List();
diff --git a/src/ServiceControlInstaller.Packaging.UnitTests/ServiceControlInstaller.Packaging.UnitTests.csproj b/src/ServiceControlInstaller.Packaging.UnitTests/ServiceControlInstaller.Packaging.UnitTests.csproj
index 76b172a166..be95909ae0 100644
--- a/src/ServiceControlInstaller.Packaging.UnitTests/ServiceControlInstaller.Packaging.UnitTests.csproj
+++ b/src/ServiceControlInstaller.Packaging.UnitTests/ServiceControlInstaller.Packaging.UnitTests.csproj
@@ -4,6 +4,10 @@
net10.0
+
+
+
+