- 
                Notifications
    You must be signed in to change notification settings 
- Fork 1.9k
Blazor Desktop
- Install required .NET MAUI dependencies described in the .NET MAUI Development Guide.
- Follow the other instructions on that guide for how to build, open the solution, etc.
The area-blazor label is used to track Blazor Hybrid items: https://github.com/dotnet/maui/issues?q=is%3Aissue+is%3Aopen+label%3Aarea-blazor
The Blazor-related projects in the repo are mostly located in the src/BlazorWebView folder, aside from the MAUI sample app:
| WinForms | WPF | .NET MAUI | 
|---|---|---|
| source | source | source | 
| - | - | templates net9 solution template | 
| sample | sample | sample | 
| - | - | tests | 
The main component on each platform is the BlazorWebView control. They each have a unique implementation in the source locations above, though they do use some shared source for Windows/WebView2 related code.
The core WebView integration with Blazor is handled within the dotnet/aspnetcore repo here.
Sometimes it may be necessary to make changes in dotnet/aspnetcore, and react to the changes in this repo. The following are steps which outline the general process in using ASP.NET Core development nupkgs with MAUI.
- 
Checkout dotnet/aspnetcore, and follow the initialization instructions in the Build From Source guide.
- 
./restore.cmd
- 
. ./activate.ps1
- 
Make the desired changes in dotnet/aspnetcore.
- 
./eng/build.cmd -pack. The-packoption causes the creation of NuGet packages.- Note packing the full repo is only required upon the first change. Subsequent changes are likely to be isolated in src/Components, hence you should be able too use.\src\Components\build.cmd -pack.
 
- Note packing the full repo is only required upon the first change. Subsequent changes are likely to be isolated in 
- 
You should see the generated packages in the aspnetcore\artifacts\packages\Debug\NonShippingdirectory. The packages should end withx.0.0-dev.nupkgwherexis the current (pre-release) .NET version ORy.0.patch.nupkgwhereyis the current (released) .NET version andpatchis the current patch version (ex.6.0.4.nupkg). We'll refer to the version seen here asVERSIONin subsequent steps.
- 
Open razor-tooling/NuGet.configand add the local package sources:- dotnet nuget add source "<PATH_TO_ASPNET_CORE_REPO>\artifacts\packages\Debug\Shipping\" --name "ASPNETCORE_SHIPPING"
- dotnet nuget add source "<PATH_TO_ASPNET_CORE_REPO>\artifacts\packages\Debug\NonShipping\" --name "ASPNETCORE_NONSHIPPING"
 
- 
Open maui/eng/Versions.propsand update all theMicrosoftAspNetCore*PackageVersionandMicrosoftJSInteropPackageVersionto reflect theVERSION.
- 
Go to <USER_HOME>\.nuget\packages\microsoft.aspnetcore.components.webviewand delete the directory namedVERSION. This clears the nuget cache.
- 
Run dotnet restorein the directory for the app you're trying the experimental aspnetcore changes in (ex.\src\BlazorWebView\samples\BlazorWpfApp).
- 
You can now run the application and it'll use the experimental aspnetcore changes. Note, subsequent changes in the aspnetcorerepo will require rebuilding (.\src\Components\build.cmd -pack) and repeating the previous two steps (clear nuget cache, rundotnet restore).
Go to this channel (and request to join if you don't have access).
Watch the recording of a brownbag session on working on Blazor Hybrid (Microsoft internal)