From 7f9cbb6aed7259f5471060ab46ee178dd23e7bc5 Mon Sep 17 00:00:00 2001 From: Giuseppe Lippolis Date: Tue, 28 Feb 2023 15:34:37 +0100 Subject: [PATCH] fix(DevTools): Debug Application without ApplicationLifetime --- Avalonia.Desktop.slnf | 1 + Avalonia.sln | 17 ++-- samples/AppWithoutLifetime/App.axaml | 7 ++ samples/AppWithoutLifetime/App.axaml.cs | 12 +++ .../AppWithoutLifetime.csproj | 21 +++++ samples/AppWithoutLifetime/MainWindow.axaml | 13 ++++ .../AppWithoutLifetime/MainWindow.axaml.cs | 30 +++++++ samples/AppWithoutLifetime/Program.cs | 28 +++++++ samples/AppWithoutLifetime/Sub.axaml | 9 +++ samples/AppWithoutLifetime/Sub.axaml.cs | 24 ++++++ samples/AppWithoutLifetime/app.manifest | 18 +++++ .../Avalonia.Controls.csproj | 1 + .../DesktopApplicationExtensions.cs | 1 - .../Diagnostics/DevTools.cs | 78 +++++++++---------- 14 files changed, 214 insertions(+), 46 deletions(-) create mode 100644 samples/AppWithoutLifetime/App.axaml create mode 100644 samples/AppWithoutLifetime/App.axaml.cs create mode 100644 samples/AppWithoutLifetime/AppWithoutLifetime.csproj create mode 100644 samples/AppWithoutLifetime/MainWindow.axaml create mode 100644 samples/AppWithoutLifetime/MainWindow.axaml.cs create mode 100644 samples/AppWithoutLifetime/Program.cs create mode 100644 samples/AppWithoutLifetime/Sub.axaml create mode 100644 samples/AppWithoutLifetime/Sub.axaml.cs create mode 100644 samples/AppWithoutLifetime/app.manifest diff --git a/Avalonia.Desktop.slnf b/Avalonia.Desktop.slnf index d4cde99240..3bdd00746b 100644 --- a/Avalonia.Desktop.slnf +++ b/Avalonia.Desktop.slnf @@ -3,6 +3,7 @@ "path": "Avalonia.sln", "projects": [ "packages\\Avalonia\\Avalonia.csproj", + "samples\\AppWithoutLifetime\\AppWithoutLifetime.csproj", "samples\\ControlCatalog.NetCore\\ControlCatalog.NetCore.csproj", "samples\\ControlCatalog\\ControlCatalog.csproj", "samples\\GpuInterop\\GpuInterop.csproj", diff --git a/Avalonia.sln b/Avalonia.sln index b21df07628..7dad7a31d9 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -244,13 +244,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepe EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepeater.UnitTests", "tests\Avalonia.Controls.ItemsRepeater.UnitTests\Avalonia.Controls.ItemsRepeater.UnitTests.csproj", "{F4E36AA8-814E-4704-BC07-291F70F45193}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Generators", "src\tools\Avalonia.Generators\Avalonia.Generators.csproj", "{DDA28789-C21A-4654-86CE-D01E81F095C5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Generators", "src\tools\Avalonia.Generators\Avalonia.Generators.csproj", "{DDA28789-C21A-4654-86CE-D01E81F095C5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Generators.Tests", "tests\Avalonia.Generators.Tests\Avalonia.Generators.Tests.csproj", "{2D7C812B-7E73-4252-8EFD-BC8A4D5CCB9F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Generators.Tests", "tests\Avalonia.Generators.Tests\Avalonia.Generators.Tests.csproj", "{2D7C812B-7E73-4252-8EFD-BC8A4D5CCB9F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Fonts.Inter", "src\Avalonia.Fonts.Inter\Avalonia.Fonts.Inter.csproj", "{13F1135D-BA1A-435C-9C5B-A368D1D63DE4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Fonts.Inter", "src\Avalonia.Fonts.Inter\Avalonia.Fonts.Inter.csproj", "{13F1135D-BA1A-435C-9C5B-A368D1D63DE4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Generators.Sandbox", "samples\Generators.Sandbox\Generators.Sandbox.csproj", "{A82AD1BC-EBE6-4FC3-A13B-D52A50297533}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Generators.Sandbox", "samples\Generators.Sandbox\Generators.Sandbox.csproj", "{A82AD1BC-EBE6-4FC3-A13B-D52A50297533}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppWithoutLifetime", "samples\AppWithoutLifetime\AppWithoutLifetime.csproj", "{F8928267-688E-4A51-989C-612A72446D33}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -595,6 +597,10 @@ Global {A82AD1BC-EBE6-4FC3-A13B-D52A50297533}.Debug|Any CPU.Build.0 = Debug|Any CPU {A82AD1BC-EBE6-4FC3-A13B-D52A50297533}.Release|Any CPU.ActiveCfg = Release|Any CPU {A82AD1BC-EBE6-4FC3-A13B-D52A50297533}.Release|Any CPU.Build.0 = Release|Any CPU + {F8928267-688E-4A51-989C-612A72446D33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8928267-688E-4A51-989C-612A72446D33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8928267-688E-4A51-989C-612A72446D33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8928267-688E-4A51-989C-612A72446D33}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -661,10 +667,11 @@ Global {75C47156-C5D8-44BC-A5A7-E8657C2248D6} = {9B9E3891-2366-4253-A952-D08BCEB71098} {C810060E-3809-4B74-A125-F11533AF9C1B} = {9B9E3891-2366-4253-A952-D08BCEB71098} {C692FE73-43DB-49CE-87FC-F03ED61F25C9} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637} + {F4E36AA8-814E-4704-BC07-291F70F45193} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {DDA28789-C21A-4654-86CE-D01E81F095C5} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637} {2D7C812B-7E73-4252-8EFD-BC8A4D5CCB9F} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} - {F4E36AA8-814E-4704-BC07-291F70F45193} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {A82AD1BC-EBE6-4FC3-A13B-D52A50297533} = {9B9E3891-2366-4253-A952-D08BCEB71098} + {F8928267-688E-4A51-989C-612A72446D33} = {9B9E3891-2366-4253-A952-D08BCEB71098} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A} diff --git a/samples/AppWithoutLifetime/App.axaml b/samples/AppWithoutLifetime/App.axaml new file mode 100644 index 0000000000..5f86b8be93 --- /dev/null +++ b/samples/AppWithoutLifetime/App.axaml @@ -0,0 +1,7 @@ + + + + + diff --git a/samples/AppWithoutLifetime/App.axaml.cs b/samples/AppWithoutLifetime/App.axaml.cs new file mode 100644 index 0000000000..9cc99929c4 --- /dev/null +++ b/samples/AppWithoutLifetime/App.axaml.cs @@ -0,0 +1,12 @@ +using Avalonia; +using Avalonia.Markup.Xaml; + +namespace AppWithoutLifetime; + +public partial class App : Application +{ + public override void Initialize() + { + AvaloniaXamlLoader.Load(this); + } +} diff --git a/samples/AppWithoutLifetime/AppWithoutLifetime.csproj b/samples/AppWithoutLifetime/AppWithoutLifetime.csproj new file mode 100644 index 0000000000..fce12af298 --- /dev/null +++ b/samples/AppWithoutLifetime/AppWithoutLifetime.csproj @@ -0,0 +1,21 @@ + + + WinExe + net6.0 + enable + app.manifest + + + + + + + + + + + + + + + diff --git a/samples/AppWithoutLifetime/MainWindow.axaml b/samples/AppWithoutLifetime/MainWindow.axaml new file mode 100644 index 0000000000..3f31cb7fae --- /dev/null +++ b/samples/AppWithoutLifetime/MainWindow.axaml @@ -0,0 +1,13 @@ + + + + +