mirror of https://github.com/icsharpcode/ILSpy.git
Tree:
d35c082616
christophwille/closedhierarchies
christophwille/contributing
christophwille/decompilerdocs
christophwille/membench
claude/ilspy-pr-3839-review-uo8q7r
collection-expression-tests
copilot/add-field-keyword-auto-properties
deconstruction-fixes
fix-3475-anonymous-type-null
fix-3860-outvar-explicit-type
fix/3465
fix/3518
gh-pages
issue1638
master
natural-type-lambdas-methods
null-coalescing-assignment
release/10.1
release/6.2
release/7.1
release/7.2
release/8.1
stash/beautify-enum-member-declarations
stash/dynamic-await
1.0-Beta
1.0-M1
1.0-M2
1.0-M3
1.0.0
2.0.0
2.1
2.2
2.3
2.3.1
3.0-Preview1
3.0-Preview2
3.0.2
v10.0
v10.0-preview1
v10.0-preview2
v10.0-preview3
v10.0.1
v10.1
v2.3.2
v2.4
v3.0
v3.0-beta1
v3.0-beta2
v3.0-beta2a
v3.0-beta3
v3.0-beta4
v3.0.1
v3.1-beta1
v3.1-final
v3.1-rc
v3.2-beta
v3.2-rc
v3.2.0
v4.0
v4.0-alpha1
v4.0-beta1
v4.0-beta2
v4.0-beta3
v4.0-rc1
v4.0-rc2
v4.0.1
v5.0
v5.0-preview1
v5.0-preview2
v5.0-preview3
v5.0-preview4
v5.0-rc1
v5.0.1
v5.0.2
v6.0
v6.0-preview1
v6.0-preview2
v6.0-preview3
v6.0-preview4
v6.0-rc1
v6.1
v6.2
v6.2-preview1
v6.2-preview2
v6.2.1
v7.0
v7.0-preview1
v7.0-preview2
v7.0-preview3
v7.0-rc1
v7.0-rc2
v7.1
v7.2
v7.2-preview1
v7.2-preview2
v7.2-preview3
v7.2-preview4
v7.2-rc
v7.2.1
v8.0
v8.0-preview1
v8.0-preview2
v8.0-preview3
v8.0-preview4
v8.0-rc1
v8.1
v8.1.1
v8.2
v9.0
v9.0-preview1
v9.0-preview2
v9.0-preview3
v9.0-rc
v9.1
${ noResults }
1 Commits (d35c082616a5c95a5b1eaeb7985b186856510053)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
17b3539a20 |
Add a per-assembly target-framework override for reference resolution
ILSpy resolves an assembly's references against the target framework it detects from the TargetFrameworkAttribute. When that attribute is missing, wrong, or the user wants to force a different framework, there was no way to hint the correct one, so references could resolve against the wrong runtime pack or framework directory. A LoadedAssembly can now carry a TargetFrameworkIdOverride that short-circuits detection (it is the single value every LoadedAssembly-based resolution path reads), is persisted in the assembly-list XML, and is carried across a reload so a runtime change re-resolves against the new framework. The "Set Target Framework" context-menu entry edits it through a dialog with a free-form text box and an always-visible list of common monikers to pick from (the app forces overlay popups, so a dropdown would be clamped inside the small dialog); input is validated and converted from the short TFM users know (net48) to the long FrameworkName form the resolver consumes (.NETFramework,Version=v4.8) via NuGet. The direct DetectTargetFrameworkId callers in the decompiler core (project export, language version) intentionally keep reading the real attribute; only reference resolution is overridden. Resurrects a 2020 prototype (branch tfmoverride) re-implemented against the current ILSpyX/Avalonia code, whose surrounding structures no longer matched. Assisted-by: Claude:claude-opus-4-8:Claude Code |
7 days ago |