Develop/issue 863 #864

Open
SteveGilham wants to merge 10 commits from SteveGilham/develop/issue-863 into master
SteveGilham commented 2022-06-24 12:56:05 -05:00 (Migrated from github.com)

This is a change towards addressing the platform dependent behaviour of the Cecil binaries when resolving system assemblies.

This change extracts the net core and framework system assembly search strategies into protected methods that will be available in all builds -- avoiding the need to reimplement both in a platform neutral subclass; and provides a hook for examining the result before or after any resolution handler invocation, and making any other adjustments before an exception is thrown.

Additionally, in order to allow a custom resolver to instantiate per-assembly in the manner of DefaultAssemblyResolver when instantiated as a fallback, a layer of IAssemblyResolverProvider types and properties has been added.

There are no changes to the existing platform dependent behaviour at this point -- the NET_CORE build doesn't look in the GAC, and the !NET_CORE one doesn't look in the dotnet shared locations, for example. Nor are any new resolver types or resolver provider types involved in the process without a caller opting in.

This is a change towards addressing the platform dependent behaviour of the Cecil binaries when resolving system assemblies. This change extracts the net core and framework system assembly search strategies into `protected` methods that will be available in all builds -- avoiding the need to reimplement both in a platform neutral subclass; and provides a hook for examining the result before or after any resolution handler invocation, and making any other adjustments before an exception is thrown. Additionally, in order to allow a custom resolver to instantiate per-assembly in the manner of `DefaultAssemblyResolver` when instantiated as a fallback, a layer of `IAssemblyResolverProvider` types and properties has been added. There are no changes to the existing platform dependent behaviour at this point -- the NET_CORE build doesn't look in the GAC, and the !NET_CORE one doesn't look in the dotnet shared locations, for example. Nor are any new resolver types or resolver provider types involved in the process without a caller opting in.
This pull request has changes conflicting with the target branch.
  • Mono.Cecil/AssemblyReader.cs
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin 'SteveGilham/develop/issue-863:SteveGilham/develop/issue-863'
git switch 'SteveGilham/develop/issue-863'

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch 'master'
git merge --no-ff 'SteveGilham/develop/issue-863'
git switch 'SteveGilham/develop/issue-863'
git rebase 'master'
git switch 'master'
git merge --ff-only 'SteveGilham/develop/issue-863'
git switch 'SteveGilham/develop/issue-863'
git rebase 'master'
git switch 'master'
git merge --no-ff 'SteveGilham/develop/issue-863'
git switch 'master'
git merge --squash 'SteveGilham/develop/issue-863'
git switch 'master'
git merge --ff-only 'SteveGilham/develop/issue-863'
git switch 'master'
git merge 'SteveGilham/develop/issue-863'
git push origin 'master'
Sign in to join this conversation.
No reviewers
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gh-jbevain/cecil!864
No description provided.