Skip to content

Commit f0be726

Browse files
authored
Full AOT Support for .NET 8+ (#582)
Implements #581 - Created new ImplementationMetadataProvider framework - Moved current Reflection-based implementation to ReflectionMetadataProvider - Created new AOT-based MetadataProvider - Added a bunch of tests for both - Added sample AOT console application - Source generators are added to the existing package, should work for AOT without code changes
2 parents d0f0422 + be70945 commit f0be726

96 files changed

Lines changed: 11576 additions & 373 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,4 @@ node_modules/
3636
.idea/
3737
*.iml
3838
.build/
39+
/.claude/settings.local.json

CommandLineUtils.sln

Lines changed: 53 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio Version 16
4-
VisualStudioVersion = 16.0.0.0
3+
# Visual Studio Version 18
4+
VisualStudioVersion = 18.3.11312.210 d18.3
55
MinimumVisualStudioVersion = 16.0.0.0
66
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{95D4B35E-0A21-4D64-8BAF-27DD6C019FC5}"
77
EndProject
@@ -32,28 +32,78 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "McMaster.Extensions.Hosting
3232
EndProject
3333
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "McMaster.Extensions.Hosting.CommandLine.Tests", "test\Hosting.CommandLine.Tests\McMaster.Extensions.Hosting.CommandLine.Tests.csproj", "{04A5D2B8-18E4-4C75-AEF9-79D171FAC210}"
3434
EndProject
35+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "McMaster.Extensions.CommandLineUtils.Generators", "src\CommandLineUtils.Generators\McMaster.Extensions.CommandLineUtils.Generators.csproj", "{A8567BA8-088A-4742-8109-E4F6BCA344A5}"
36+
EndProject
3537
Global
3638
GlobalSection(SolutionConfigurationPlatforms) = preSolution
3739
Debug|Any CPU = Debug|Any CPU
40+
Debug|x64 = Debug|x64
41+
Debug|x86 = Debug|x86
3842
Release|Any CPU = Release|Any CPU
43+
Release|x64 = Release|x64
44+
Release|x86 = Release|x86
3945
EndGlobalSection
4046
GlobalSection(ProjectConfigurationPlatforms) = postSolution
4147
{CBCFAFF3-A3B1-4C41-B2D1-092BF7307A4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
4248
{CBCFAFF3-A3B1-4C41-B2D1-092BF7307A4E}.Debug|Any CPU.Build.0 = Debug|Any CPU
49+
{CBCFAFF3-A3B1-4C41-B2D1-092BF7307A4E}.Debug|x64.ActiveCfg = Debug|Any CPU
50+
{CBCFAFF3-A3B1-4C41-B2D1-092BF7307A4E}.Debug|x64.Build.0 = Debug|Any CPU
51+
{CBCFAFF3-A3B1-4C41-B2D1-092BF7307A4E}.Debug|x86.ActiveCfg = Debug|Any CPU
52+
{CBCFAFF3-A3B1-4C41-B2D1-092BF7307A4E}.Debug|x86.Build.0 = Debug|Any CPU
4353
{CBCFAFF3-A3B1-4C41-B2D1-092BF7307A4E}.Release|Any CPU.ActiveCfg = Release|Any CPU
4454
{CBCFAFF3-A3B1-4C41-B2D1-092BF7307A4E}.Release|Any CPU.Build.0 = Release|Any CPU
55+
{CBCFAFF3-A3B1-4C41-B2D1-092BF7307A4E}.Release|x64.ActiveCfg = Release|Any CPU
56+
{CBCFAFF3-A3B1-4C41-B2D1-092BF7307A4E}.Release|x64.Build.0 = Release|Any CPU
57+
{CBCFAFF3-A3B1-4C41-B2D1-092BF7307A4E}.Release|x86.ActiveCfg = Release|Any CPU
58+
{CBCFAFF3-A3B1-4C41-B2D1-092BF7307A4E}.Release|x86.Build.0 = Release|Any CPU
4559
{1258544C-1FDE-4810-9A1B-189A925E9B45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
4660
{1258544C-1FDE-4810-9A1B-189A925E9B45}.Debug|Any CPU.Build.0 = Debug|Any CPU
61+
{1258544C-1FDE-4810-9A1B-189A925E9B45}.Debug|x64.ActiveCfg = Debug|Any CPU
62+
{1258544C-1FDE-4810-9A1B-189A925E9B45}.Debug|x64.Build.0 = Debug|Any CPU
63+
{1258544C-1FDE-4810-9A1B-189A925E9B45}.Debug|x86.ActiveCfg = Debug|Any CPU
64+
{1258544C-1FDE-4810-9A1B-189A925E9B45}.Debug|x86.Build.0 = Debug|Any CPU
4765
{1258544C-1FDE-4810-9A1B-189A925E9B45}.Release|Any CPU.ActiveCfg = Release|Any CPU
4866
{1258544C-1FDE-4810-9A1B-189A925E9B45}.Release|Any CPU.Build.0 = Release|Any CPU
67+
{1258544C-1FDE-4810-9A1B-189A925E9B45}.Release|x64.ActiveCfg = Release|Any CPU
68+
{1258544C-1FDE-4810-9A1B-189A925E9B45}.Release|x64.Build.0 = Release|Any CPU
69+
{1258544C-1FDE-4810-9A1B-189A925E9B45}.Release|x86.ActiveCfg = Release|Any CPU
70+
{1258544C-1FDE-4810-9A1B-189A925E9B45}.Release|x86.Build.0 = Release|Any CPU
4971
{407245F7-3F2C-4634-8578-7EFCA9BD26BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
5072
{407245F7-3F2C-4634-8578-7EFCA9BD26BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
73+
{407245F7-3F2C-4634-8578-7EFCA9BD26BD}.Debug|x64.ActiveCfg = Debug|Any CPU
74+
{407245F7-3F2C-4634-8578-7EFCA9BD26BD}.Debug|x64.Build.0 = Debug|Any CPU
75+
{407245F7-3F2C-4634-8578-7EFCA9BD26BD}.Debug|x86.ActiveCfg = Debug|Any CPU
76+
{407245F7-3F2C-4634-8578-7EFCA9BD26BD}.Debug|x86.Build.0 = Debug|Any CPU
5177
{407245F7-3F2C-4634-8578-7EFCA9BD26BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
5278
{407245F7-3F2C-4634-8578-7EFCA9BD26BD}.Release|Any CPU.Build.0 = Release|Any CPU
79+
{407245F7-3F2C-4634-8578-7EFCA9BD26BD}.Release|x64.ActiveCfg = Release|Any CPU
80+
{407245F7-3F2C-4634-8578-7EFCA9BD26BD}.Release|x64.Build.0 = Release|Any CPU
81+
{407245F7-3F2C-4634-8578-7EFCA9BD26BD}.Release|x86.ActiveCfg = Release|Any CPU
82+
{407245F7-3F2C-4634-8578-7EFCA9BD26BD}.Release|x86.Build.0 = Release|Any CPU
5383
{04A5D2B8-18E4-4C75-AEF9-79D171FAC210}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
5484
{04A5D2B8-18E4-4C75-AEF9-79D171FAC210}.Debug|Any CPU.Build.0 = Debug|Any CPU
85+
{04A5D2B8-18E4-4C75-AEF9-79D171FAC210}.Debug|x64.ActiveCfg = Debug|Any CPU
86+
{04A5D2B8-18E4-4C75-AEF9-79D171FAC210}.Debug|x64.Build.0 = Debug|Any CPU
87+
{04A5D2B8-18E4-4C75-AEF9-79D171FAC210}.Debug|x86.ActiveCfg = Debug|Any CPU
88+
{04A5D2B8-18E4-4C75-AEF9-79D171FAC210}.Debug|x86.Build.0 = Debug|Any CPU
5589
{04A5D2B8-18E4-4C75-AEF9-79D171FAC210}.Release|Any CPU.ActiveCfg = Release|Any CPU
5690
{04A5D2B8-18E4-4C75-AEF9-79D171FAC210}.Release|Any CPU.Build.0 = Release|Any CPU
91+
{04A5D2B8-18E4-4C75-AEF9-79D171FAC210}.Release|x64.ActiveCfg = Release|Any CPU
92+
{04A5D2B8-18E4-4C75-AEF9-79D171FAC210}.Release|x64.Build.0 = Release|Any CPU
93+
{04A5D2B8-18E4-4C75-AEF9-79D171FAC210}.Release|x86.ActiveCfg = Release|Any CPU
94+
{04A5D2B8-18E4-4C75-AEF9-79D171FAC210}.Release|x86.Build.0 = Release|Any CPU
95+
{A8567BA8-088A-4742-8109-E4F6BCA344A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
96+
{A8567BA8-088A-4742-8109-E4F6BCA344A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
97+
{A8567BA8-088A-4742-8109-E4F6BCA344A5}.Debug|x64.ActiveCfg = Debug|Any CPU
98+
{A8567BA8-088A-4742-8109-E4F6BCA344A5}.Debug|x64.Build.0 = Debug|Any CPU
99+
{A8567BA8-088A-4742-8109-E4F6BCA344A5}.Debug|x86.ActiveCfg = Debug|Any CPU
100+
{A8567BA8-088A-4742-8109-E4F6BCA344A5}.Debug|x86.Build.0 = Debug|Any CPU
101+
{A8567BA8-088A-4742-8109-E4F6BCA344A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
102+
{A8567BA8-088A-4742-8109-E4F6BCA344A5}.Release|Any CPU.Build.0 = Release|Any CPU
103+
{A8567BA8-088A-4742-8109-E4F6BCA344A5}.Release|x64.ActiveCfg = Release|Any CPU
104+
{A8567BA8-088A-4742-8109-E4F6BCA344A5}.Release|x64.Build.0 = Release|Any CPU
105+
{A8567BA8-088A-4742-8109-E4F6BCA344A5}.Release|x86.ActiveCfg = Release|Any CPU
106+
{A8567BA8-088A-4742-8109-E4F6BCA344A5}.Release|x86.Build.0 = Release|Any CPU
57107
EndGlobalSection
58108
GlobalSection(SolutionProperties) = preSolution
59109
HideSolutionNode = FALSE
@@ -63,6 +113,7 @@ Global
63113
{1258544C-1FDE-4810-9A1B-189A925E9B45} = {C4842A1B-019E-40FF-A396-CF5AFDE8FA54}
64114
{407245F7-3F2C-4634-8578-7EFCA9BD26BD} = {95D4B35E-0A21-4D64-8BAF-27DD6C019FC5}
65115
{04A5D2B8-18E4-4C75-AEF9-79D171FAC210} = {C4842A1B-019E-40FF-A396-CF5AFDE8FA54}
116+
{A8567BA8-088A-4742-8109-E4F6BCA344A5} = {95D4B35E-0A21-4D64-8BAF-27DD6C019FC5}
66117
EndGlobalSection
67118
GlobalSection(ExtensibilityGlobals) = postSolution
68119
SolutionGuid = {55FD25E0-565D-49F9-9370-28DA7196E539}

Directory.Build.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
</ItemGroup>
2828

2929
<PropertyGroup>
30+
<LangVersion>latest</LangVersion>
3031
<WarningsNotAsErrors>$(WarningsNotAsErrors);1591</WarningsNotAsErrors>
3132
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
3233
<Nullable>enable</Nullable>

0 commit comments

Comments
 (0)