SharpNinja.Extensions.WindowsAppSdkHost
1.2.0
dotnet add package SharpNinja.Extensions.WindowsAppSdkHost --version 1.2.0
NuGet\Install-Package SharpNinja.Extensions.WindowsAppSdkHost -Version 1.2.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SharpNinja.Extensions.WindowsAppSdkHost" Version="1.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SharpNinja.Extensions.WindowsAppSdkHost --version 1.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: SharpNinja.Extensions.WindowsAppSdkHost, 1.2.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install SharpNinja.Extensions.WindowsAppSdkHost as a Cake Addin #addin nuget:?package=SharpNinja.Extensions.WindowsAppSdkHost&version=1.2.0 // Install SharpNinja.Extensions.WindowsAppSdkHost as a Cake Tool #tool nuget:?package=SharpNinja.Extensions.WindowsAppSdkHost&version=1.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Windows App SDK Host
Allows hosting a Windows App SDK Application in an IHost
that manages the lifecycle of the hosted Application.
Usage
(Convert existing project or the default template's output)
- Add
<DefineConstants>DISABLE_XAML_GENERATED_MAIN</DefineConstants>
in the mainPropertyGroup
of your applications project file. - Add reference to
CommunityToolkit.Extensions.Hosting.WindowsAppSdk
- Add
Program.cs
to the root of your application project. - Add this code to the
Program.cs
:
public static class Program
{
[STAThread]
public static void Main(string[] args)
{
var builder = new WindowsAppSdkHostBuilder<App>();
builder.ConfigureServices(
(_, collection) =>
{
// If your main Window is named differently, change it here.
collection.AddSingleton<MainWindow>();
}
);
var app = builder.Build();
app.StartAsync().GetAwaiter().GetResult();
}
}
- Set your
Program.cs
as the startup object by adding<StartupObject>HostedWindowsAppSdk.Program</StartupObject>
to your project file. - Use the
CancelableApplication
as the base class of your application by modifying yourApp.xaml
:
<host:CancelableApplication
x:Class="HostedWindowsAppSdk.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:host="using:CommunityToolkit.Extensions.Hosting"
xmlns:local="using:HostedWindowsAppSdk">
<Application.Resources>
</Application.Resources>
</host:CancelableApplication>
- Update your App.xaml.cs to use dependency injection.
protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
{
// Get window from Dependency Injection.
_mWindow = Services.GetRequiredService<MainWindow>();
_mWindow.Activate();
}
Notes
The WindowsAppSdkHost
uses several features of the Microsoft.Extensions ecosystem:
- Includes all configuration resources defined for the
DefaultHostBuilder
. - Registers the required
CancellableApplication
with dependency injection. - Manages the lifecycle of the Application in the
StartAsync
method of theWindowsAppSdkHost
. - Write unhandled errors to default
ILogger
. TheIlogger
can be obtained from the staticServices
property of theCancellableApplication
after building the app.
If there are other patterns you feel should be available or required then start a discussion.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0-windows10.0.19041 is compatible. net6.0-windows was computed. net6.0-windows10.0.19041 is compatible. net7.0-windows was computed. net8.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net5.0-windows10.0.19041
- Microsoft.Extensions.Hosting (>= 6.0.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 6.0.0)
- Microsoft.WindowsAppSDK (>= 1.1.3)
-
net6.0-windows10.0.19041
- Microsoft.Extensions.Hosting (>= 6.0.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 6.0.0)
- Microsoft.WindowsAppSDK (>= 1.1.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.