From b6f3e4ca62818fc02550bf65ae89eee63a36a8c4 Mon Sep 17 00:00:00 2001 From: Alexey Sosnin Date: Sun, 29 Dec 2024 23:09:58 +0300 Subject: [PATCH] feat: migrate to .NET 9 --- .editorconfig | 48 +++++-- Directory.Build.props | 4 +- Heartbeat.sln | 131 ++++++++++++++++-- README.md | 2 +- global.json | 2 +- scripts/update-ts-client.ps1 | 2 +- src/DebugHost/DebugHost.csproj | 2 +- .../Analyzers/HttpClientAnalyzer.cs | 2 +- .../Heartbeat.Runtime.csproj | 8 +- src/Heartbeat.Runtime/RuntimeContext.cs | 9 +- src/Heartbeat/Heartbeat.csproj | 14 +- tests/DumpHelper/DumpHelper.csproj | 2 +- tests/DumpHelper/Program.cs | 2 +- tests/MinimalRepo/MinimalRepo.csproj | 2 +- 14 files changed, 177 insertions(+), 53 deletions(-) diff --git a/.editorconfig b/.editorconfig index 550541b..d24ada8 100644 --- a/.editorconfig +++ b/.editorconfig @@ -81,14 +81,14 @@ csharp_style_var_for_built_in_types = false csharp_style_var_when_type_is_apparent = false # Expression-bodied members -csharp_style_expression_bodied_accessors = true -csharp_style_expression_bodied_constructors = false -csharp_style_expression_bodied_indexers = true -csharp_style_expression_bodied_lambdas = true -csharp_style_expression_bodied_local_functions = false -csharp_style_expression_bodied_methods = false -csharp_style_expression_bodied_operators = false -csharp_style_expression_bodied_properties = true +csharp_style_expression_bodied_accessors = true:silent +csharp_style_expression_bodied_constructors = false:silent +csharp_style_expression_bodied_indexers = true:silent +csharp_style_expression_bodied_lambdas = true:silent +csharp_style_expression_bodied_local_functions = false:silent +csharp_style_expression_bodied_methods = false:silent +csharp_style_expression_bodied_operators = false:silent +csharp_style_expression_bodied_properties = true:silent # Pattern matching preferences csharp_style_pattern_matching_over_as_with_null_check = true @@ -107,11 +107,11 @@ csharp_preferred_modifier_order = public,private,protected,internal,static,exter csharp_style_prefer_readonly_struct = true # Code-block preferences -csharp_prefer_braces = true -csharp_prefer_simple_using_statement = true -csharp_style_namespace_declarations = block_scoped -csharp_style_prefer_method_group_conversion = true -csharp_style_prefer_top_level_statements = true +csharp_prefer_braces = true:silent +csharp_prefer_simple_using_statement = true:suggestion +csharp_style_namespace_declarations = block_scoped:silent +csharp_style_prefer_method_group_conversion = true:silent +csharp_style_prefer_top_level_statements = true:silent # Expression-level preferences csharp_prefer_simple_default_expression = true @@ -129,7 +129,7 @@ csharp_style_unused_value_assignment_preference = discard_variable csharp_style_unused_value_expression_statement_preference = discard_variable # 'using' directive preferences -csharp_using_directive_placement = outside_namespace +csharp_using_directive_placement = outside_namespace:silent # New line preferences csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true @@ -237,3 +237,23 @@ dotnet_naming_style.starts_with__.required_prefix = _ dotnet_naming_style.starts_with__.required_suffix = dotnet_naming_style.starts_with__.word_separator = dotnet_naming_style.starts_with__.capitalization = camel_case +csharp_style_prefer_primary_constructors = true:suggestion +csharp_prefer_system_threading_lock = true:suggestion + +[*.{cs,vb}] +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_null_propagation = true:suggestion +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion +dotnet_style_prefer_auto_properties = true:silent +dotnet_style_object_initializer = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_prefer_simplified_boolean_expressions = true:suggestion +dotnet_style_prefer_conditional_expression_over_assignment = true:silent +dotnet_style_prefer_conditional_expression_over_return = true:silent +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_prefer_inferred_tuple_names = true:suggestion +dotnet_style_operator_placement_when_wrapping = beginning_of_line +tab_width = 2 +indent_size = 4 +end_of_line = crlf +dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion \ No newline at end of file diff --git a/Directory.Build.props b/Directory.Build.props index a67c4ae..202620f 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,13 +1,13 @@  - net8.0 + net9.0 enable enable false - 0.8.1 + 0.9.0 https://github.com/Ne4to/Heartbeat true MIT diff --git a/Heartbeat.sln b/Heartbeat.sln index 9551b77..1e64730 100644 --- a/Heartbeat.sln +++ b/Heartbeat.sln @@ -11,6 +11,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig Directory.Build.props = Directory.Build.props + global.json = global.json + nuget.config = nuget.config .github\workflows\push-package.yml = .github\workflows\push-package.yml README.md = README.md EndProjectSection @@ -27,12 +29,24 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DebugHost", "src\DebugHost\ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{88EB58BA-FB0F-4A15-B366-BB033820126B}" ProjectSection(SolutionItems) = preProject + scripts\clean-artifacts.ps1 = scripts\clean-artifacts.ps1 + scripts\publish-native-aot.ps1 = scripts\publish-native-aot.ps1 scripts\reinstall-dev-tool.ps1 = scripts\reinstall-dev-tool.ps1 + scripts\reinstall-release-tool.ps1 = scripts\reinstall-release-tool.ps1 scripts\update-ts-client.ps1 = scripts\update-ts-client.ps1 EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MinimalRepo", "tests\MinimalRepo\MinimalRepo.csproj", "{3D11554D-E09C-4710-B071-D90BB2447F46}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{536FA6F7-7E49-40E4-83EB-46C1B1AEA194}" + ProjectSection(SolutionItems) = preProject + .github\workflows\codeql-analysis.yml = .github\workflows\codeql-analysis.yml + .github\workflows\lint-pr.yml = .github\workflows\lint-pr.yml + .github\workflows\push-package.yml = .github\workflows\push-package.yml + .github\workflows\release.yml = .github\workflows\release.yml + .github\workflows\test-native-aot-publish.yml = .github\workflows\test-native-aot-publish.yml + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -43,12 +57,18 @@ Global DebugLocal|arm64 = DebugLocal|arm64 DebugLocal|x64 = DebugLocal|x64 DebugLocal|x86 = DebugLocal|x86 + DebugOpenAPI|Any CPU = DebugOpenAPI|Any CPU + DebugOpenAPI|arm64 = DebugOpenAPI|arm64 + DebugOpenAPI|x64 = DebugOpenAPI|x64 + DebugOpenAPI|x86 = DebugOpenAPI|x86 Release|Any CPU = Release|Any CPU Release|arm64 = Release|arm64 Release|x64 = Release|x64 Release|x86 = Release|x86 - DebugOpenAPI|Any CPU = DebugOpenAPI|Any CPU ReleaseAOT|Any CPU = ReleaseAOT|Any CPU + ReleaseAOT|arm64 = ReleaseAOT|arm64 + ReleaseAOT|x64 = ReleaseAOT|x64 + ReleaseAOT|x86 = ReleaseAOT|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {9E63F5A0-7695-474C-A946-64D75F8D9617}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -59,6 +79,22 @@ Global {9E63F5A0-7695-474C-A946-64D75F8D9617}.Debug|x64.Build.0 = Debug|Any CPU {9E63F5A0-7695-474C-A946-64D75F8D9617}.Debug|x86.ActiveCfg = Debug|Any CPU {9E63F5A0-7695-474C-A946-64D75F8D9617}.Debug|x86.Build.0 = Debug|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugLocal|Any CPU.ActiveCfg = DebugOpenAPI|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugLocal|Any CPU.Build.0 = DebugOpenAPI|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugLocal|arm64.ActiveCfg = DebugOpenAPI|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugLocal|arm64.Build.0 = DebugOpenAPI|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugLocal|x64.ActiveCfg = DebugOpenAPI|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugLocal|x64.Build.0 = DebugOpenAPI|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugLocal|x86.ActiveCfg = DebugOpenAPI|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugLocal|x86.Build.0 = DebugOpenAPI|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugOpenAPI|Any CPU.ActiveCfg = DebugOpenAPI|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugOpenAPI|Any CPU.Build.0 = DebugOpenAPI|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugOpenAPI|arm64.ActiveCfg = DebugOpenAPI|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugOpenAPI|arm64.Build.0 = DebugOpenAPI|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugOpenAPI|x64.ActiveCfg = DebugOpenAPI|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugOpenAPI|x64.Build.0 = DebugOpenAPI|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugOpenAPI|x86.ActiveCfg = DebugOpenAPI|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugOpenAPI|x86.Build.0 = DebugOpenAPI|Any CPU {9E63F5A0-7695-474C-A946-64D75F8D9617}.Release|Any CPU.ActiveCfg = Release|Any CPU {9E63F5A0-7695-474C-A946-64D75F8D9617}.Release|Any CPU.Build.0 = Release|Any CPU {9E63F5A0-7695-474C-A946-64D75F8D9617}.Release|arm64.ActiveCfg = Release|Any CPU @@ -67,10 +103,14 @@ Global {9E63F5A0-7695-474C-A946-64D75F8D9617}.Release|x64.Build.0 = Release|Any CPU {9E63F5A0-7695-474C-A946-64D75F8D9617}.Release|x86.ActiveCfg = Release|Any CPU {9E63F5A0-7695-474C-A946-64D75F8D9617}.Release|x86.Build.0 = Release|Any CPU - {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugOpenAPI|Any CPU.ActiveCfg = DebugOpenAPI|Any CPU - {9E63F5A0-7695-474C-A946-64D75F8D9617}.DebugOpenAPI|Any CPU.Build.0 = DebugOpenAPI|Any CPU {9E63F5A0-7695-474C-A946-64D75F8D9617}.ReleaseAOT|Any CPU.ActiveCfg = ReleaseAOT|Any CPU {9E63F5A0-7695-474C-A946-64D75F8D9617}.ReleaseAOT|Any CPU.Build.0 = ReleaseAOT|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.ReleaseAOT|arm64.ActiveCfg = ReleaseAOT|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.ReleaseAOT|arm64.Build.0 = ReleaseAOT|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.ReleaseAOT|x64.ActiveCfg = ReleaseAOT|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.ReleaseAOT|x64.Build.0 = ReleaseAOT|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.ReleaseAOT|x86.ActiveCfg = ReleaseAOT|Any CPU + {9E63F5A0-7695-474C-A946-64D75F8D9617}.ReleaseAOT|x86.Build.0 = ReleaseAOT|Any CPU {D4060CFE-8141-49CE-99A5-559599D0E6B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D4060CFE-8141-49CE-99A5-559599D0E6B4}.Debug|Any CPU.Build.0 = Debug|Any CPU {D4060CFE-8141-49CE-99A5-559599D0E6B4}.Debug|arm64.ActiveCfg = Debug|Any CPU @@ -79,6 +119,22 @@ Global {D4060CFE-8141-49CE-99A5-559599D0E6B4}.Debug|x64.Build.0 = Debug|Any CPU {D4060CFE-8141-49CE-99A5-559599D0E6B4}.Debug|x86.ActiveCfg = Debug|Any CPU {D4060CFE-8141-49CE-99A5-559599D0E6B4}.Debug|x86.Build.0 = Debug|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugLocal|Any CPU.ActiveCfg = DebugOpenAPI|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugLocal|Any CPU.Build.0 = DebugOpenAPI|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugLocal|arm64.ActiveCfg = DebugOpenAPI|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugLocal|arm64.Build.0 = DebugOpenAPI|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugLocal|x64.ActiveCfg = DebugOpenAPI|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugLocal|x64.Build.0 = DebugOpenAPI|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugLocal|x86.ActiveCfg = DebugOpenAPI|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugLocal|x86.Build.0 = DebugOpenAPI|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugOpenAPI|Any CPU.ActiveCfg = DebugOpenAPI|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugOpenAPI|Any CPU.Build.0 = DebugOpenAPI|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugOpenAPI|arm64.ActiveCfg = DebugOpenAPI|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugOpenAPI|arm64.Build.0 = DebugOpenAPI|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugOpenAPI|x64.ActiveCfg = DebugOpenAPI|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugOpenAPI|x64.Build.0 = DebugOpenAPI|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugOpenAPI|x86.ActiveCfg = DebugOpenAPI|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugOpenAPI|x86.Build.0 = DebugOpenAPI|Any CPU {D4060CFE-8141-49CE-99A5-559599D0E6B4}.Release|Any CPU.ActiveCfg = Release|Any CPU {D4060CFE-8141-49CE-99A5-559599D0E6B4}.Release|Any CPU.Build.0 = Release|Any CPU {D4060CFE-8141-49CE-99A5-559599D0E6B4}.Release|arm64.ActiveCfg = Release|Any CPU @@ -87,10 +143,14 @@ Global {D4060CFE-8141-49CE-99A5-559599D0E6B4}.Release|x64.Build.0 = Release|Any CPU {D4060CFE-8141-49CE-99A5-559599D0E6B4}.Release|x86.ActiveCfg = Release|Any CPU {D4060CFE-8141-49CE-99A5-559599D0E6B4}.Release|x86.Build.0 = Release|Any CPU - {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugOpenAPI|Any CPU.ActiveCfg = DebugOpenAPI|Any CPU - {D4060CFE-8141-49CE-99A5-559599D0E6B4}.DebugOpenAPI|Any CPU.Build.0 = DebugOpenAPI|Any CPU {D4060CFE-8141-49CE-99A5-559599D0E6B4}.ReleaseAOT|Any CPU.ActiveCfg = ReleaseAOT|Any CPU {D4060CFE-8141-49CE-99A5-559599D0E6B4}.ReleaseAOT|Any CPU.Build.0 = ReleaseAOT|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.ReleaseAOT|arm64.ActiveCfg = ReleaseAOT|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.ReleaseAOT|arm64.Build.0 = ReleaseAOT|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.ReleaseAOT|x64.ActiveCfg = ReleaseAOT|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.ReleaseAOT|x64.Build.0 = ReleaseAOT|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.ReleaseAOT|x86.ActiveCfg = ReleaseAOT|Any CPU + {D4060CFE-8141-49CE-99A5-559599D0E6B4}.ReleaseAOT|x86.Build.0 = ReleaseAOT|Any CPU {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.Debug|Any CPU.Build.0 = Debug|Any CPU {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.Debug|arm64.ActiveCfg = Debug|Any CPU @@ -107,6 +167,13 @@ Global {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.DebugLocal|x64.Build.0 = Debug|Any CPU {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.DebugLocal|x86.ActiveCfg = Debug|Any CPU {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.DebugLocal|x86.Build.0 = Debug|Any CPU + {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.DebugOpenAPI|Any CPU.ActiveCfg = DebugOpenAPI|Any CPU + {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.DebugOpenAPI|arm64.ActiveCfg = DebugOpenAPI|Any CPU + {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.DebugOpenAPI|arm64.Build.0 = DebugOpenAPI|Any CPU + {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.DebugOpenAPI|x64.ActiveCfg = DebugOpenAPI|Any CPU + {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.DebugOpenAPI|x64.Build.0 = DebugOpenAPI|Any CPU + {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.DebugOpenAPI|x86.ActiveCfg = DebugOpenAPI|Any CPU + {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.DebugOpenAPI|x86.Build.0 = DebugOpenAPI|Any CPU {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.Release|Any CPU.ActiveCfg = Release|Any CPU {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.Release|Any CPU.Build.0 = Release|Any CPU {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.Release|arm64.ActiveCfg = Release|Any CPU @@ -115,8 +182,13 @@ Global {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.Release|x64.Build.0 = Release|Any CPU {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.Release|x86.ActiveCfg = Release|Any CPU {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.Release|x86.Build.0 = Release|Any CPU - {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.DebugOpenAPI|Any CPU.ActiveCfg = DebugOpenAPI|Any CPU {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.ReleaseAOT|Any CPU.ActiveCfg = ReleaseAOT|Any CPU + {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.ReleaseAOT|arm64.ActiveCfg = ReleaseAOT|Any CPU + {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.ReleaseAOT|arm64.Build.0 = ReleaseAOT|Any CPU + {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.ReleaseAOT|x64.ActiveCfg = ReleaseAOT|Any CPU + {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.ReleaseAOT|x64.Build.0 = ReleaseAOT|Any CPU + {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.ReleaseAOT|x86.ActiveCfg = ReleaseAOT|Any CPU + {AC8E6790-14D5-42C5-AF51-98E8EB80644F}.ReleaseAOT|x86.Build.0 = ReleaseAOT|Any CPU {789E65CA-B8F7-47B9-9013-B159D1E93F36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {789E65CA-B8F7-47B9-9013-B159D1E93F36}.Debug|Any CPU.Build.0 = Debug|Any CPU {789E65CA-B8F7-47B9-9013-B159D1E93F36}.Debug|arm64.ActiveCfg = Debug|Any CPU @@ -133,6 +205,13 @@ Global {789E65CA-B8F7-47B9-9013-B159D1E93F36}.DebugLocal|x64.Build.0 = Debug|Any CPU {789E65CA-B8F7-47B9-9013-B159D1E93F36}.DebugLocal|x86.ActiveCfg = Debug|Any CPU {789E65CA-B8F7-47B9-9013-B159D1E93F36}.DebugLocal|x86.Build.0 = Debug|Any CPU + {789E65CA-B8F7-47B9-9013-B159D1E93F36}.DebugOpenAPI|Any CPU.ActiveCfg = DebugOpenAPI|Any CPU + {789E65CA-B8F7-47B9-9013-B159D1E93F36}.DebugOpenAPI|arm64.ActiveCfg = DebugOpenAPI|Any CPU + {789E65CA-B8F7-47B9-9013-B159D1E93F36}.DebugOpenAPI|arm64.Build.0 = DebugOpenAPI|Any CPU + {789E65CA-B8F7-47B9-9013-B159D1E93F36}.DebugOpenAPI|x64.ActiveCfg = DebugOpenAPI|Any CPU + {789E65CA-B8F7-47B9-9013-B159D1E93F36}.DebugOpenAPI|x64.Build.0 = DebugOpenAPI|Any CPU + {789E65CA-B8F7-47B9-9013-B159D1E93F36}.DebugOpenAPI|x86.ActiveCfg = DebugOpenAPI|Any CPU + {789E65CA-B8F7-47B9-9013-B159D1E93F36}.DebugOpenAPI|x86.Build.0 = DebugOpenAPI|Any CPU {789E65CA-B8F7-47B9-9013-B159D1E93F36}.Release|Any CPU.ActiveCfg = Release|Any CPU {789E65CA-B8F7-47B9-9013-B159D1E93F36}.Release|Any CPU.Build.0 = Release|Any CPU {789E65CA-B8F7-47B9-9013-B159D1E93F36}.Release|arm64.ActiveCfg = Release|Any CPU @@ -141,8 +220,13 @@ Global {789E65CA-B8F7-47B9-9013-B159D1E93F36}.Release|x64.Build.0 = Release|Any CPU {789E65CA-B8F7-47B9-9013-B159D1E93F36}.Release|x86.ActiveCfg = Release|Any CPU {789E65CA-B8F7-47B9-9013-B159D1E93F36}.Release|x86.Build.0 = Release|Any CPU - {789E65CA-B8F7-47B9-9013-B159D1E93F36}.DebugOpenAPI|Any CPU.ActiveCfg = DebugOpenAPI|Any CPU {789E65CA-B8F7-47B9-9013-B159D1E93F36}.ReleaseAOT|Any CPU.ActiveCfg = ReleaseAOT|Any CPU + {789E65CA-B8F7-47B9-9013-B159D1E93F36}.ReleaseAOT|arm64.ActiveCfg = ReleaseAOT|Any CPU + {789E65CA-B8F7-47B9-9013-B159D1E93F36}.ReleaseAOT|arm64.Build.0 = ReleaseAOT|Any CPU + {789E65CA-B8F7-47B9-9013-B159D1E93F36}.ReleaseAOT|x64.ActiveCfg = ReleaseAOT|Any CPU + {789E65CA-B8F7-47B9-9013-B159D1E93F36}.ReleaseAOT|x64.Build.0 = ReleaseAOT|Any CPU + {789E65CA-B8F7-47B9-9013-B159D1E93F36}.ReleaseAOT|x86.ActiveCfg = ReleaseAOT|Any CPU + {789E65CA-B8F7-47B9-9013-B159D1E93F36}.ReleaseAOT|x86.Build.0 = ReleaseAOT|Any CPU {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.Debug|Any CPU.Build.0 = Debug|Any CPU {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.Debug|arm64.ActiveCfg = Debug|Any CPU @@ -159,6 +243,13 @@ Global {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.DebugLocal|x64.Build.0 = Debug|Any CPU {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.DebugLocal|x86.ActiveCfg = Debug|Any CPU {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.DebugLocal|x86.Build.0 = Debug|Any CPU + {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.DebugOpenAPI|Any CPU.ActiveCfg = DebugOpenAPI|Any CPU + {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.DebugOpenAPI|arm64.ActiveCfg = DebugOpenAPI|Any CPU + {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.DebugOpenAPI|arm64.Build.0 = DebugOpenAPI|Any CPU + {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.DebugOpenAPI|x64.ActiveCfg = DebugOpenAPI|Any CPU + {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.DebugOpenAPI|x64.Build.0 = DebugOpenAPI|Any CPU + {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.DebugOpenAPI|x86.ActiveCfg = DebugOpenAPI|Any CPU + {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.DebugOpenAPI|x86.Build.0 = DebugOpenAPI|Any CPU {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.Release|Any CPU.ActiveCfg = Release|Any CPU {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.Release|Any CPU.Build.0 = Release|Any CPU {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.Release|arm64.ActiveCfg = Release|Any CPU @@ -167,8 +258,13 @@ Global {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.Release|x64.Build.0 = Release|Any CPU {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.Release|x86.ActiveCfg = Release|Any CPU {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.Release|x86.Build.0 = Release|Any CPU - {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.DebugOpenAPI|Any CPU.ActiveCfg = DebugOpenAPI|Any CPU {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.ReleaseAOT|Any CPU.ActiveCfg = ReleaseAOT|Any CPU + {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.ReleaseAOT|arm64.ActiveCfg = ReleaseAOT|Any CPU + {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.ReleaseAOT|arm64.Build.0 = ReleaseAOT|Any CPU + {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.ReleaseAOT|x64.ActiveCfg = ReleaseAOT|Any CPU + {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.ReleaseAOT|x64.Build.0 = ReleaseAOT|Any CPU + {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.ReleaseAOT|x86.ActiveCfg = ReleaseAOT|Any CPU + {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D}.ReleaseAOT|x86.Build.0 = ReleaseAOT|Any CPU {3D11554D-E09C-4710-B071-D90BB2447F46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3D11554D-E09C-4710-B071-D90BB2447F46}.Debug|Any CPU.Build.0 = Debug|Any CPU {3D11554D-E09C-4710-B071-D90BB2447F46}.Debug|arm64.ActiveCfg = Debug|Any CPU @@ -185,6 +281,13 @@ Global {3D11554D-E09C-4710-B071-D90BB2447F46}.DebugLocal|x64.Build.0 = Debug|Any CPU {3D11554D-E09C-4710-B071-D90BB2447F46}.DebugLocal|x86.ActiveCfg = Debug|Any CPU {3D11554D-E09C-4710-B071-D90BB2447F46}.DebugLocal|x86.Build.0 = Debug|Any CPU + {3D11554D-E09C-4710-B071-D90BB2447F46}.DebugOpenAPI|Any CPU.ActiveCfg = DebugOpenAPI|Any CPU + {3D11554D-E09C-4710-B071-D90BB2447F46}.DebugOpenAPI|arm64.ActiveCfg = DebugOpenAPI|Any CPU + {3D11554D-E09C-4710-B071-D90BB2447F46}.DebugOpenAPI|arm64.Build.0 = DebugOpenAPI|Any CPU + {3D11554D-E09C-4710-B071-D90BB2447F46}.DebugOpenAPI|x64.ActiveCfg = DebugOpenAPI|Any CPU + {3D11554D-E09C-4710-B071-D90BB2447F46}.DebugOpenAPI|x64.Build.0 = DebugOpenAPI|Any CPU + {3D11554D-E09C-4710-B071-D90BB2447F46}.DebugOpenAPI|x86.ActiveCfg = DebugOpenAPI|Any CPU + {3D11554D-E09C-4710-B071-D90BB2447F46}.DebugOpenAPI|x86.Build.0 = DebugOpenAPI|Any CPU {3D11554D-E09C-4710-B071-D90BB2447F46}.Release|Any CPU.ActiveCfg = Release|Any CPU {3D11554D-E09C-4710-B071-D90BB2447F46}.Release|Any CPU.Build.0 = Release|Any CPU {3D11554D-E09C-4710-B071-D90BB2447F46}.Release|arm64.ActiveCfg = Release|Any CPU @@ -193,20 +296,26 @@ Global {3D11554D-E09C-4710-B071-D90BB2447F46}.Release|x64.Build.0 = Release|Any CPU {3D11554D-E09C-4710-B071-D90BB2447F46}.Release|x86.ActiveCfg = Release|Any CPU {3D11554D-E09C-4710-B071-D90BB2447F46}.Release|x86.Build.0 = Release|Any CPU - {3D11554D-E09C-4710-B071-D90BB2447F46}.DebugOpenAPI|Any CPU.ActiveCfg = DebugOpenAPI|Any CPU {3D11554D-E09C-4710-B071-D90BB2447F46}.ReleaseAOT|Any CPU.ActiveCfg = ReleaseAOT|Any CPU + {3D11554D-E09C-4710-B071-D90BB2447F46}.ReleaseAOT|arm64.ActiveCfg = ReleaseAOT|Any CPU + {3D11554D-E09C-4710-B071-D90BB2447F46}.ReleaseAOT|arm64.Build.0 = ReleaseAOT|Any CPU + {3D11554D-E09C-4710-B071-D90BB2447F46}.ReleaseAOT|x64.ActiveCfg = ReleaseAOT|Any CPU + {3D11554D-E09C-4710-B071-D90BB2447F46}.ReleaseAOT|x64.Build.0 = ReleaseAOT|Any CPU + {3D11554D-E09C-4710-B071-D90BB2447F46}.ReleaseAOT|x86.ActiveCfg = ReleaseAOT|Any CPU + {3D11554D-E09C-4710-B071-D90BB2447F46}.ReleaseAOT|x86.Build.0 = ReleaseAOT|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {AC8E6790-14D5-42C5-AF51-98E8EB80644F} = {E52617F0-FB17-4C0C-A70A-26A3C11A8647} - {789E65CA-B8F7-47B9-9013-B159D1E93F36} = {E52617F0-FB17-4C0C-A70A-26A3C11A8647} {9E63F5A0-7695-474C-A946-64D75F8D9617} = {677CC7ED-C157-4885-884A-5C88B08A90C6} {D4060CFE-8141-49CE-99A5-559599D0E6B4} = {677CC7ED-C157-4885-884A-5C88B08A90C6} + {AC8E6790-14D5-42C5-AF51-98E8EB80644F} = {E52617F0-FB17-4C0C-A70A-26A3C11A8647} + {789E65CA-B8F7-47B9-9013-B159D1E93F36} = {E52617F0-FB17-4C0C-A70A-26A3C11A8647} {F1FF76E5-3DEE-4C64-8A62-8A645B981D1D} = {E52617F0-FB17-4C0C-A70A-26A3C11A8647} {88EB58BA-FB0F-4A15-B366-BB033820126B} = {BE3A3B9E-B429-4D93-8E8D-9A23CCA4DA19} {3D11554D-E09C-4710-B071-D90BB2447F46} = {E52617F0-FB17-4C0C-A70A-26A3C11A8647} + {536FA6F7-7E49-40E4-83EB-46C1B1AEA194} = {BE3A3B9E-B429-4D93-8E8D-9A23CCA4DA19} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {9BC4B059-33F1-4B7C-B5D9-DA6D2F1E5076} diff --git a/README.md b/README.md index 3193385..0e57c9c 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Diagnostics utility with web UI to analyze .NET application memory dump ### dotnet tool -.NET 8 SDK is required +.NET 9 SDK is required ```shell dotnet tool install --global Heartbeat diff --git a/global.json b/global.json index 60b4c02..2834806 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "8.0.100", + "version": "9.0.101", "rollForward": "latestMinor", "allowPrerelease": false } diff --git a/scripts/update-ts-client.ps1 b/scripts/update-ts-client.ps1 index e2d4e9c..d649592 100644 --- a/scripts/update-ts-client.ps1 +++ b/scripts/update-ts-client.ps1 @@ -4,7 +4,7 @@ $Configuration = 'DebugOpenAPI' $RepositoryRoot = Split-Path $PSScriptRoot $FrontendRoot = Join-Path $RepositoryRoot 'src/Heartbeat/ClientApp' $ContractPath = Join-Path $FrontendRoot 'api.yml' -$DllPath = Join-Path $RepositoryRoot "src/Heartbeat/bin/$Configuration/net8.0/Heartbeat.dll" +$DllPath = Join-Path $RepositoryRoot "src/Heartbeat/bin/$Configuration/net9.0/Heartbeat.dll" Push-Location try diff --git a/src/DebugHost/DebugHost.csproj b/src/DebugHost/DebugHost.csproj index bef7247..05cfc0d 100644 --- a/src/DebugHost/DebugHost.csproj +++ b/src/DebugHost/DebugHost.csproj @@ -5,7 +5,7 @@ - + diff --git a/src/Heartbeat.Runtime/Analyzers/HttpClientAnalyzer.cs b/src/Heartbeat.Runtime/Analyzers/HttpClientAnalyzer.cs index 133235d..19f2bf0 100644 --- a/src/Heartbeat.Runtime/Analyzers/HttpClientAnalyzer.cs +++ b/src/Heartbeat.Runtime/Analyzers/HttpClientAnalyzer.cs @@ -20,7 +20,7 @@ public IReadOnlyCollection GetClientsInfo() foreach (var address in Context.EnumerateObjectAddressesByTypeName("System.Net.Http.HttpClient", ObjectGcStatus)) { - var httpClientObjectType = Context.Heap.GetObjectType(address); + var httpClientObjectType = Context.Heap.GetObjectType(address)!; var timeoutField = httpClientObjectType.GetFieldByName("_timeout"); if (timeoutField == null) { diff --git a/src/Heartbeat.Runtime/Heartbeat.Runtime.csproj b/src/Heartbeat.Runtime/Heartbeat.Runtime.csproj index f29ff4c..0d77599 100644 --- a/src/Heartbeat.Runtime/Heartbeat.Runtime.csproj +++ b/src/Heartbeat.Runtime/Heartbeat.Runtime.csproj @@ -1,6 +1,6 @@  - + @@ -14,9 +14,9 @@ - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Heartbeat.Runtime/RuntimeContext.cs b/src/Heartbeat.Runtime/RuntimeContext.cs index fc57ce5..e1f0182 100644 --- a/src/Heartbeat.Runtime/RuntimeContext.cs +++ b/src/Heartbeat.Runtime/RuntimeContext.cs @@ -54,13 +54,8 @@ public string GetStringLengthFieldName() public IEnumerable EnumerateObjectAddressesByTypeName(string typeName, ObjectGCStatus? status) { - var clrType = Heap.GetTypeByName(typeName); - - if (clrType == null) - { - throw new Exception($"Type '{typeName}' is not found"); - } - + var clrType = Heap.GetTypeByName(typeName) ?? throw new Exception($"Type '{typeName}' is not found"); + return from clrObject in Heap.EnumerateObjects() let type = clrObject.Type diff --git a/src/Heartbeat/Heartbeat.csproj b/src/Heartbeat/Heartbeat.csproj index 526fb0a..ca023e6 100644 --- a/src/Heartbeat/Heartbeat.csproj +++ b/src/Heartbeat/Heartbeat.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 enable enable Heartbeat.Host @@ -60,12 +60,12 @@ - - - - - - + + + + + + diff --git a/tests/DumpHelper/DumpHelper.csproj b/tests/DumpHelper/DumpHelper.csproj index 2b56828..89ffb5d 100644 --- a/tests/DumpHelper/DumpHelper.csproj +++ b/tests/DumpHelper/DumpHelper.csproj @@ -5,7 +5,7 @@ - + diff --git a/tests/DumpHelper/Program.cs b/tests/DumpHelper/Program.cs index a0d8d20..463a120 100644 --- a/tests/DumpHelper/Program.cs +++ b/tests/DumpHelper/Program.cs @@ -45,7 +45,7 @@ private void BuildProject(FileInfo projectFile) private Process RunProject(FileInfo projectFile) { - var dir = Path.Combine(projectFile.DirectoryName, @"bin\Release\net8.0"); + var dir = Path.Combine(projectFile.DirectoryName, @"bin\Release\net9.0"); var exeFile = Path.ChangeExtension(projectFile.Name, "exe"); ProcessStartInfo startInfo = new() diff --git a/tests/MinimalRepo/MinimalRepo.csproj b/tests/MinimalRepo/MinimalRepo.csproj index 1a3f617..e581f3e 100644 --- a/tests/MinimalRepo/MinimalRepo.csproj +++ b/tests/MinimalRepo/MinimalRepo.csproj @@ -8,7 +8,7 @@ - +