mirror of https://github.com/icsharpcode/ILSpy.git
Tree:
a593e43a86
christophwille/closedhierarchies
christophwille/membench
compound-assignment-operators
fix/1982-params-attribute-args
fix/2040-invalid-xml-characters
fix/2093-navigateto-reference-assembly
fix/2362-xalz-references
fix/2372-address-taken-by
fix/3282-indexer-optional-arguments
fix/3568-record-member-order
fix/4059-deconstruct-out-slots
fix/lambda-parameter-syntax
fix/scroll-children-on-expand
gh-pages
ldmembertoken
master
natural-type-lambdas-methods
null-coalescing-assignment
release/10.1
release/6.2
release/7.1
release/7.2
release/8.1
substring-optimizations
tests/829-async-method-builder-override
tests/829-collection-expressions
tests/829-compound-assignment-operators
tests/829-coverage-audit
tests/829-expression-tree-named-optional-args
tests/829-expression-variables-in-initializers
tests/829-extended-property-patterns
tests/829-extension-members
tests/829-extension-operators
tests/829-file-local-types
tests/829-improved-definite-assignment
tests/829-improved-overload-candidates
tests/829-inline-arrays
tests/829-interpolated-string-improvements
tests/829-lambda-param-modifiers
tests/829-list-patterns
tests/829-lock-object
tests/829-mixed-deconstruction
tests/829-null-coalescing-assignment
tests/829-null-conditional-assignment
tests/829-object-initializer-indexer
tests/829-overload-resolution-priority
tests/829-params-collections
tests/829-pattern-matching-improvements
tests/829-primary-constructors
tests/829-ref-unsafe-in-iterators-async
tests/829-sealed-record-tostring
tests/829-target-typed-conditional
tests/829-tuple-comparison
win-a11y-textsize
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
v10.1.1
v11.0
v11.0-preview1
v11.0-rc
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 }
5 Commits (a593e43a865524ae094b2165707340df6be89c70)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
0b7fa142d7 |
#3315: Gate implicit references the way the SDK gates them
The exporter dropped PresentationFramework, System.Xaml, System.Windows.Forms and System.Drawing from every project it wrote, whatever the assembly used, while a second list held the remaining WPF assemblies behind a WPF check. The SDK draws the line elsewhere: Microsoft.NET.Sdk.WindowsDesktop.props promotes the nine _WpfCommonNetFxReference items to _SDKImplicitReference only when UseWPF is set, System.Windows.Forms only when UseWindowsForms is, and WindowsFormsIntegration only when both are. A XAML-only assembly therefore lost a reference that nothing supplied, and a WPF application that also used Windows Forms lost the Windows Forms references while the project only said UseWPF. Following the SDK there makes WPF and Windows Forms independent rather than alternatives, which is what the flags enum is for: an assembly can use both, and then both properties have to be written. Where an assembly looks like more than one kind of project, the web SDK wins the Sdk attribute, because Microsoft.NET.Sdk.Web imports Microsoft.NET.Sdk and so carries the desktop targets, while Microsoft.NET.Sdk.WindowsDesktop carries no web targets. System.Drawing stays unconditional: Microsoft.NET.Sdk.BeforeCommon.targets adds it for every .NETFramework target rather than only for Windows Forms ones, and on .NET Core it ships in the Microsoft.NETCore.App reference pack. Assisted-by: Claude:claude-opus-5[1m]:Claude Code |
2 weeks ago |
|
|
d93bbcdb73 |
#3315: Drop references that UseWPF already supplies
An exported WPF project listed PresentationCore next to the implicit Windows Desktop framework reference, which is a duplicate reference (MSB3243) or an unresolvable one (MSB3245) once the hint path stops pointing anywhere. The target-pack filter that should have caught it asks the assembly resolver, which answers by probing the shared frameworks installed on the machine running the export - so the same assembly exported from Linux, or from a Windows box without the desktop runtime, produced a different project file. What the SDK adds for UseWPF is a fixed list, so match it by name instead. Assisted-by: Claude:claude-opus-5[1m]:Claude Code |
2 weeks ago |
|
|
2900d18bca |
#3315: Ask for the WindowsDesktop SDK only where it is still needed
Microsoft.NET.Sdk imports the Windows Desktop targets itself for .NET Framework and for .NET 5 and later, and warns (NETSDK1137) about every project that still names the separate SDK. Only .NET Core 3.x, where those targets are not imported without a platform-suffixed moniker, genuinely needs Microsoft.NET.Sdk.WindowsDesktop. Assisted-by: Claude:claude-opus-5[1m]:Claude Code |
2 weeks ago |
|
|
fe8477e943 |
#3315: Keep the target platform in exported target framework monikers
A .NET 5 or later project that sets UseWPF or UseWindowsForms is rejected outright (NETSDK1136) unless its target framework names the Windows platform, so an exported WPF assembly produced a project that could not build at all. The platform belongs to the assembly rather than to WPF - TargetPlatformAttribute records it, SupportedOSPlatform its minimum version - so the moniker follows the attributes wherever they are present, and falls back to plain "windows" only for a desktop project built before those attributes existed. Monikers older than net5.0 take no platform suffix and must not grow one. Assisted-by: Claude:claude-opus-5[1m]:Claude Code |
2 weeks ago |
|
|
1534a051fe |
#2253: Export the WPF application definition as such, not as a Page
The WPF markup compiler generates the program entry point from the ApplicationDefinition item, so an exported project that lists App.xaml as a Page has no Main at all and fails to build with CS5001. Both the UI and ilspycmd already resolve the BAML root's partial class, which makes deriving Application from System.Windows.Application the natural signal. The module additionally has to have an entry point of its own: a library that merely contains an Application subclass would otherwise have MSBuild generate a Main into it. Assisted-by: Claude:claude-opus-5[1m]:Claude Code |
2 weeks ago |