Skip to content

Commit b5ca9db

Browse files
authored
Use Ordinal string comparison for TargetAlias (#7224)
1 parent 5e65b14 commit b5ca9db

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

src/NuGet.Core/NuGet.ProjectModel/LockFile/LockFile.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public LockFileTarget GetTarget(NuGetFramework framework, string runtimeIdentifi
4141
public LockFileTarget GetTarget(string frameworkAlias, string runtimeIdentifier)
4242
{
4343
return Targets.FirstOrDefault(t =>
44-
t.TargetAlias.Equals(frameworkAlias) &&
44+
string.Equals(t.TargetAlias, frameworkAlias, StringComparison.Ordinal) &&
4545
(string.IsNullOrEmpty(runtimeIdentifier) && string.IsNullOrEmpty(t.RuntimeIdentifier) ||
4646
string.Equals(runtimeIdentifier, t.RuntimeIdentifier, StringComparison.OrdinalIgnoreCase)));
4747
}

test/NuGet.Core.Tests/NuGet.ProjectModel.Test/LockFileTests.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -920,6 +920,28 @@ public void LockFile_GetTarget_WithAliasAndSameFramework_ReturnsCorrectLockFileT
920920
targetWithRid.TargetAlias.Should().Be("net5.0");
921921
}
922922

923+
[Fact]
924+
public void LockFile_GetTarget_WithAlias_WhenTargetAliasIsNull_ReturnsNull()
925+
{
926+
// Arrange
927+
LockFile lockFile = new LockFile()
928+
{
929+
Targets = new List<LockFileTarget>()
930+
{
931+
new() {
932+
TargetFramework = FrameworkConstants.CommonFrameworks.Net50,
933+
TargetAlias = null
934+
},
935+
}
936+
};
937+
938+
// Act
939+
LockFileTarget target = lockFile.GetTarget("net5.0", runtimeIdentifier: null);
940+
941+
// Assert
942+
target.Should().BeNull();
943+
}
944+
923945
private LockFile Parse(string lockFileContent, string path)
924946
{
925947
var reader = new LockFileFormat();

0 commit comments

Comments
 (0)