Add Auto Sort to prefer DLL version winners and handle Sysnative/WOW64 access - #3
Add Auto Sort to prefer DLL version winners and handle Sysnative/WOW64 access#3Darkaxt wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3066252a1e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| path.AddIssue(string.Format( | ||
| "{0} v{1} shadowed by {2} (v{3})", | ||
| filename, | ||
| FormatVersion(winningPath.Version), | ||
| firstHit.FullPath, |
There was a problem hiding this comment.
Limit DLL winner warning to the winning path entry
When AddIssueIfNeeded handles a DLL conflict, it always formats the warning with winningPath.Version even if the currently checked path is not that winning entry. In a PATH like A(v1) -> B(v3) -> C(v2), checking C still emits a message saying v3 is shadowed by A, which is inaccurate for that row and can mislead users about which directory to move. This warning should either be emitted only when path.Path is the winningPath.Entry, or the message should use the current entry’s version instead of the global winner.
Useful? React with 👍 / 👎.
…d-repo-for-issues-and-improvements
Motivation
Description
Auto Sortbutton to the UI (MainWindow.xaml) and anAutoSort_Clickhandler inMainWindow.xaml.csthat applies suggested ordering for both system and user PATH lists using the new reordering logic.PathChecker.SuggestBestOrderto score and suggest a better ordering by enumerating DLL owners, comparing file versions and rewarding directories that contain the winning versions, with aversionCacheto avoid repeatedFileVersionInfolookups.ResolvePathForAccessinPathChecker,ActualPathForAccessinPathEntry, and switching uses ofActualPathtoActualPathForAccesswhere needed; updated caches to key on resolved paths.CheckPathnow delegates DLL-specific diagnostics toAddIssueIfNeeded, which reports more informative messages including version numbers; added a reusablePathListEqualoverload and made equality/hash comparisons case-insensitive inPathEntry.Testing
Codex Task