Skip to content

Commit 2378e31

Browse files
committed
C#: Make conflicting assembly selection deterministic
1 parent be16cb4 commit 2378e31

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/AssemblyCache.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ private void IndexReferences()
7070
foreach (var info in assemblyInfoByFileName.Values
7171
.OrderBy(info => info.Name)
7272
.ThenBy(info => info.NetCoreVersion ?? emptyVersion)
73-
.ThenBy(info => info.Version ?? emptyVersion))
73+
.ThenBy(info => info.Version ?? emptyVersion)
74+
.ThenBy(info => info.Filename))
7475
{
7576
foreach (var index in info.IndexStrings)
7677
{

csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,11 @@ private void ResolveConflicts()
322322
}
323323

324324
var emptyVersion = new Version(0, 0);
325-
sortedReferences = sortedReferences.OrderBy(r => r.NetCoreVersion ?? emptyVersion).ThenBy(r => r.Version ?? emptyVersion).ToList();
325+
sortedReferences = sortedReferences
326+
.OrderBy(r => r.NetCoreVersion ?? emptyVersion)
327+
.ThenBy(r => r.Version ?? emptyVersion)
328+
.ThenBy(r => r.Filename)
329+
.ToList();
326330

327331
var finalAssemblyList = new Dictionary<string, AssemblyInfo>();
328332

0 commit comments

Comments
 (0)