diff --git a/src/Templates/src/templates/maui-multiproject/.template.config/dotnetcli.host.json b/src/Templates/src/templates/maui-multiproject/.template.config/dotnetcli.host.json
new file mode 100644
index 000000000..8d12aaf0f
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/.template.config/dotnetcli.host.json
@@ -0,0 +1,25 @@
+{
+ "$schema": "http://json.schemastore.org/dotnetcli.host",
+ "symbolInfo": {
+ "Framework": {
+ "longName": "framework"
+ },
+ "android": {
+ "shortName": ""
+ },
+ "ios": {
+ "shortName": ""
+ },
+ "maccatalyst": {
+ "longName": "macos",
+ "shortName": ""
+ },
+ "winui": {
+ "longName": "windows",
+ "shortName": ""
+ }
+ },
+ "usageExamples": [
+ "--framework DOTNET_TFM_VALUE --android --ios"
+ ]
+}
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-multiproject/.template.config/ide.host.json b/src/Templates/src/templates/maui-multiproject/.template.config/ide.host.json
new file mode 100644
index 000000000..4f94bb878
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/.template.config/ide.host.json
@@ -0,0 +1,44 @@
+{
+ "$schema": "http://json.schemastore.org/ide.host",
+ "icon": "ide/icon.ico",
+ "unsupportedHosts": [
+ {
+ "id": "vs",
+ "version": "(,17.3)"
+ }
+ ],
+ "requiredComponents": [
+ {
+ "id": "Microsoft.VisualStudio.ComponentGroup.Maui.All",
+ "hostId": "vs",
+ "componentType": "SetupComponent"
+ }
+ ],
+ "symbolInfo": [
+ {
+ "id": "Framework",
+ "persistenceScope": "shared",
+ "persistenceScopeName": "maui"
+ },
+ {
+ "id": "android",
+ "isVisible": true,
+ "defaultValue": "true"
+ },
+ {
+ "id": "ios",
+ "isVisible": true,
+ "defaultValue": "true"
+ },
+ {
+ "id": "maccatalyst",
+ "isVisible": true,
+ "defaultValue": "true"
+ },
+ {
+ "id": "winui",
+ "isVisible": true,
+ "defaultValue": "true"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-multiproject/.template.config/ide/icon.ico b/src/Templates/src/templates/maui-multiproject/.template.config/ide/icon.ico
new file mode 100644
index 000000000..20aa62a59
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/.template.config/ide/icon.ico differ
diff --git a/src/Templates/src/templates/maui-multiproject/.template.config/template.json b/src/Templates/src/templates/maui-multiproject/.template.config/template.json
new file mode 100644
index 000000000..e7e4afe62
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/.template.config/template.json
@@ -0,0 +1,195 @@
+{
+ "$schema": "http://json.schemastore.org/template",
+ "author": "Microsoft",
+ "classifications": [ "MAUI", "Android", "iOS", "macOS", "Mac Catalyst", "Windows", "Mobile" ],
+ "identity": "Microsoft.Maui.MultiProjectApp.CSharp.DOTNET_TFM_VERSION_VALUE",
+ "groupIdentity": "Microsoft.Maui.MultiProjectApp",
+ "precedence": "DOTNET_TFM_VERSION_MAJOR_VALUE",
+ "name": ".NET MAUI Multi-Project App",
+ "description": "A project for creating a .NET MAUI application for iOS, Android, Mac Catalyst and WinUI with multiple, separate app projects.",
+ "shortName": "maui-multiproject",
+ "tags": {
+ "language": "C#",
+ "type": "project"
+ },
+ "sourceName": "MauiApp.1",
+ "primaryOutputs": [
+ {
+ "condition": "(HostIdentifier != \"dotnetcli\" && HostIdentifier != \"dotnetcli-preview\")",
+ "path": "MauiApp.1/MainPage.xaml.cs"
+ },
+ {
+ "condition": "(HostIdentifier != \"dotnetcli\" && HostIdentifier != \"dotnetcli-preview\")",
+ "path": "MauiApp.1/MainPage.xaml"
+ }
+ ],
+ "postActions": [
+ {
+ "id": "openInEditor",
+ "condition": "(HostIdentifier != \"dotnetcli\" && HostIdentifier != \"dotnetcli-preview\" && HostIdentifier != \"vs\")",
+ "description": "Opens MainPage.xaml in the editor.",
+ "manualInstructions": [],
+ "actionId": "84C0DA21-51C8-4541-9940-6CA19AF04EE6",
+ "args": {
+ "files": "0;1"
+ },
+ "continueOnError": true
+ }
+ ],
+ "sources": [
+ {
+ "source": "./",
+ "target": "./",
+ "copyOnly": [ "**/*.svg", "**/*.ttf" ],
+ "modifiers": [
+ {
+ "condition": "(!android && !AllPlatforms)",
+ "exclude": [
+ "MauiApp.1.Droid/**/*"
+ ]
+ },
+ {
+ "condition": "(!ios && !AllPlatforms)",
+ "exclude": [
+ "MauiApp.1.iOS/**/*"
+ ]
+ },
+ {
+ "condition": "(!maccatalyst && !AllPlatforms)",
+ "exclude": [
+ "MauiApp.1.Mac/**/*"
+ ]
+ },
+ {
+ "condition": "(!winui && !AllPlatforms)",
+ "exclude": [
+ "MauiApp.1.WinUI/**/*"
+ ]
+ }
+ ]
+ }
+ ],
+ "preferNameDirectory": true,
+ "guids": [
+ "87919f9c-abb8-48e5-bae7-eb1b4140f6a8"
+ ],
+ "symbols": {
+ "applicationId": {
+ "type": "parameter",
+ "description": "Overrides the $(ApplicationId) in the project",
+ "datatype": "string"
+ },
+ "msExtensionsLoggingDebugVersion": {
+ "type": "parameter",
+ "dataType": "string",
+ "replaces": "MS_EXT_LOG_DEBUG_VERSION",
+ "defaultValue": "MS_EXT_LOG_DEBUG_VERSION_VALUE"
+ },
+ "Framework": {
+ "type": "parameter",
+ "description": "The target framework for the project.",
+ "datatype": "choice",
+ "choices": [
+ {
+ "choice": "DOTNET_TFM_VALUE",
+ "description": "Target DOTNET_TFM_VALUE"
+ }
+ ],
+ "replaces": "DOTNET_TFM",
+ "defaultValue": "DOTNET_TFM_VALUE"
+ },
+ "android": {
+ "type": "parameter",
+ "datatype": "bool",
+ "defaultValue": "false",
+ "defaultIfOptionWithoutValue": "true",
+ "displayName": "Android",
+ "description": "Include the Android app head project"
+ },
+ "ios": {
+ "type": "parameter",
+ "datatype": "bool",
+ "defaultValue": "false",
+ "defaultIfOptionWithoutValue": "true",
+ "displayName": "iOS",
+ "description": "Include the iOS app head project"
+ },
+ "maccatalyst": {
+ "type": "parameter",
+ "datatype": "bool",
+ "defaultValue": "false",
+ "defaultIfOptionWithoutValue": "true",
+ "displayName": "macOS using Mac Catalyst",
+ "description": "Include the macOS app head project (using Mac Catalyst)"
+ },
+ "winui": {
+ "type": "parameter",
+ "datatype": "bool",
+ "defaultValue": "false",
+ "defaultIfOptionWithoutValue": "true",
+ "displayName": "Windows using WinUI 3",
+ "description": "Include the Windows app head project (using WinUI 3)"
+ },
+ "AllPlatforms": {
+ "type": "computed",
+ "value": "(!android && !ios && !maccatalyst && !winui)"
+ },
+ "HostIdentifier": {
+ "type": "bind",
+ "binding": "HostIdentifier"
+ },
+ "PhoneProductId": {
+ "type": "generated",
+ "generator": "guid",
+ "replaces": "$guid9$"
+ },
+ "nameToLower":{
+ "type": "generated",
+ "generator": "casing",
+ "parameters": {
+ "source" : "name",
+ "toLower": true
+ }
+ },
+ "nameToAppId": {
+ "type": "generated",
+ "generator": "regex",
+ "dataType": "string",
+ "parameters": {
+ "source": "nameToLower",
+ "steps": [
+ {
+ "regex": "[^a-z0-9_\\.]",
+ "replacement": ""
+ }
+ ]
+ }
+ },
+ "defaultAppId":{
+ "type": "generated",
+ "generator": "join",
+ "parameters": {
+ "symbols": [
+ {
+ "type": "const",
+ "value": "com.companyname."
+ },
+ {
+ "type": "ref",
+ "value": "nameToAppId"
+ }
+ ]
+ }
+ },
+ "finalAppId":{
+ "type":"generated",
+ "generator": "coalesce",
+ "parameters": {
+ "sourceVariableName": "applicationId",
+ "fallbackVariableName": "defaultAppId"
+ },
+ "replaces": "com.companyname.mauiapp"
+ }
+ },
+ "defaultName": "MauiApp1"
+}
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/AndroidManifest.xml b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/AndroidManifest.xml
new file mode 100644
index 000000000..b84d05364
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/AndroidManifest.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Assets/AboutAndroidAssets.txt b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Assets/AboutAndroidAssets.txt
new file mode 100644
index 000000000..072563f8f
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Assets/AboutAndroidAssets.txt
@@ -0,0 +1,19 @@
+Any raw assets you want to be deployed with your application can be placed in
+this directory (and child directories) and given a Build Action of "AndroidAsset".
+
+These files will be deployed with your package and will be accessible using Android's
+AssetManager, like this:
+
+public class ReadAsset : Activity
+{
+ protected override void OnCreate (Bundle bundle)
+ {
+ base.OnCreate (bundle);
+
+ InputStream input = Assets.Open ("my_asset.txt");
+ }
+}
+
+Additionally, some Android functions will automatically load asset files:
+
+Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/MainActivity.cs b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/MainActivity.cs
new file mode 100644
index 000000000..fda96bb10
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/MainActivity.cs
@@ -0,0 +1,10 @@
+using Android.App;
+using Android.Content.PM;
+using Android.OS;
+
+namespace MauiApp._1.Droid;
+
+[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
+public class MainActivity : MauiAppCompatActivity
+{
+}
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/MainApplication.cs b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/MainApplication.cs
new file mode 100644
index 000000000..ea905cda2
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/MainApplication.cs
@@ -0,0 +1,15 @@
+using Android.App;
+using Android.Runtime;
+
+namespace MauiApp._1.Droid;
+
+[Application]
+public class MainApplication : MauiApplication
+{
+ public MainApplication(IntPtr handle, JniHandleOwnership ownership)
+ : base(handle, ownership)
+ {
+ }
+
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+}
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/MauiApp.1.Droid.csproj b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/MauiApp.1.Droid.csproj
new file mode 100644
index 000000000..b339f16b9
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/MauiApp.1.Droid.csproj
@@ -0,0 +1,22 @@
+
+
+
+ DOTNET_TFM-android
+ 21.0
+ Exe
+ enable
+ enable
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/MauiProgram.cs b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/MauiProgram.cs
new file mode 100644
index 000000000..0833c3f67
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/MauiProgram.cs
@@ -0,0 +1,14 @@
+namespace MauiApp._1.Droid;
+
+public static class MauiProgram
+{
+ public static MauiApp CreateMauiApp()
+ {
+ var builder = MauiApp.CreateBuilder();
+
+ builder
+ .UseSharedMauiApp();
+
+ return builder.Build();
+ }
+}
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/AboutAndroidResources.txt b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/AboutAndroidResources.txt
new file mode 100644
index 000000000..219f42544
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/AboutAndroidResources.txt
@@ -0,0 +1,44 @@
+Images, layout descriptions, binary blobs and string dictionaries can be included
+in your application as resource files. Various Android APIs are designed to
+operate on the resource IDs instead of dealing with images, strings or binary blobs
+directly.
+
+For example, a sample Android app that contains a user interface layout (main.xml),
+an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
+would keep its resources in the "Resources" directory of the application:
+
+Resources/
+ drawable/
+ icon.png
+
+ layout/
+ main.xml
+
+ values/
+ strings.xml
+
+In order to get the build system to recognize Android resources, set the build action to
+"AndroidResource". The native Android APIs do not operate directly with filenames, but
+instead operate on resource IDs. When you compile an Android application that uses resources,
+the build system will package the resources for distribution and generate a class called "Resource"
+(this is an Android convention) that contains the tokens for each one of the resources
+included. For example, for the above Resources layout, this is what the Resource class would expose:
+
+public class Resource {
+ public class Drawable {
+ public const int icon = 0x123;
+ }
+
+ public class Layout {
+ public const int main = 0x456;
+ }
+
+ public class Strings {
+ public const int first_string = 0xabc;
+ public const int second_string = 0xbcd;
+ }
+}
+
+You would then use Resource.Drawable.icon to reference the drawable/icon.png file, or
+Resource.Layout.main to reference the layout/main.xml file, or Resource.Strings.first_string
+to reference the first string in the dictionary file values/strings.xml.
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/drawable-hdpi/dotnet_bot_devices.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/drawable-hdpi/dotnet_bot_devices.png
new file mode 100644
index 000000000..55eb32f74
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/drawable-hdpi/dotnet_bot_devices.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/drawable-mdpi/dotnet_bot_devices.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/drawable-mdpi/dotnet_bot_devices.png
new file mode 100644
index 000000000..ddfdfcf0d
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/drawable-mdpi/dotnet_bot_devices.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/drawable-xhdpi/dotnet_bot_devices.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/drawable-xhdpi/dotnet_bot_devices.png
new file mode 100644
index 000000000..bd3952f54
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/drawable-xhdpi/dotnet_bot_devices.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/drawable-xxhdpi/dotnet_bot_devices.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/drawable-xxhdpi/dotnet_bot_devices.png
new file mode 100644
index 000000000..b61c64df3
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/drawable-xxhdpi/dotnet_bot_devices.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/drawable-xxxhdpi/dotnet_bot_devices.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/drawable-xxxhdpi/dotnet_bot_devices.png
new file mode 100644
index 000000000..969ac3165
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/drawable-xxxhdpi/dotnet_bot_devices.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-anydpi-v26/appicon.xml b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-anydpi-v26/appicon.xml
new file mode 100644
index 000000000..7751f6951
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-anydpi-v26/appicon.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-anydpi-v26/appicon_round.xml b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-anydpi-v26/appicon_round.xml
new file mode 100644
index 000000000..7751f6951
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-anydpi-v26/appicon_round.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-hdpi/appicon.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-hdpi/appicon.png
new file mode 100644
index 000000000..0abfc1b58
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-hdpi/appicon.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-hdpi/appicon_background.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-hdpi/appicon_background.png
new file mode 100644
index 000000000..513e69d84
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-hdpi/appicon_background.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-hdpi/appicon_foreground.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-hdpi/appicon_foreground.png
new file mode 100644
index 000000000..99d3a291b
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-hdpi/appicon_foreground.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-mdpi/appicon.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-mdpi/appicon.png
new file mode 100644
index 000000000..7b5a2e2bf
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-mdpi/appicon.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-mdpi/appicon_background.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-mdpi/appicon_background.png
new file mode 100644
index 000000000..9e2d1e4d8
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-mdpi/appicon_background.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-mdpi/appicon_foreground.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-mdpi/appicon_foreground.png
new file mode 100644
index 000000000..a28d342c1
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-mdpi/appicon_foreground.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xhdpi/appicon.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xhdpi/appicon.png
new file mode 100644
index 000000000..b28b73c65
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xhdpi/appicon.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xhdpi/appicon_background.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xhdpi/appicon_background.png
new file mode 100644
index 000000000..658be3fb6
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xhdpi/appicon_background.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xhdpi/appicon_foreground.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xhdpi/appicon_foreground.png
new file mode 100644
index 000000000..70a542ac0
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xhdpi/appicon_foreground.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxhdpi/appicon.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxhdpi/appicon.png
new file mode 100644
index 000000000..f9af1173e
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxhdpi/appicon.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxhdpi/appicon_background.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxhdpi/appicon_background.png
new file mode 100644
index 000000000..9171c3e40
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxhdpi/appicon_background.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxhdpi/appicon_foreground.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxhdpi/appicon_foreground.png
new file mode 100644
index 000000000..cb63bfb9f
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxhdpi/appicon_foreground.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxxhdpi/appicon.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxxhdpi/appicon.png
new file mode 100644
index 000000000..1d948d6b5
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxxhdpi/appicon.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxxhdpi/appicon_background.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxxhdpi/appicon_background.png
new file mode 100644
index 000000000..1232d8c8d
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxxhdpi/appicon_background.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxxhdpi/appicon_foreground.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxxhdpi/appicon_foreground.png
new file mode 100644
index 000000000..9f9c9e6d9
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/mipmap-xxxhdpi/appicon_foreground.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/values/colors.xml b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/values/colors.xml
new file mode 100644
index 000000000..c04d7492a
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/values/colors.xml
@@ -0,0 +1,6 @@
+
+
+ #512BD4
+ #2B0B98
+ #2B0B98
+
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/values/strings.xml b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/values/strings.xml
new file mode 100644
index 000000000..62fc6797d
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Droid/Resources/values/strings.xml
@@ -0,0 +1,3 @@
+
+ MauiApp.1
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/AppDelegate.cs b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/AppDelegate.cs
new file mode 100644
index 000000000..b223f6312
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/AppDelegate.cs
@@ -0,0 +1,9 @@
+using Foundation;
+
+namespace MauiApp._1.Mac;
+
+[Register(nameof(AppDelegate))]
+public class AppDelegate : MauiUIApplicationDelegate
+{
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+}
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Contents.json b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 000000000..2242b9aac
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,68 @@
+{
+ "images": [
+ {
+ "idiom" : "mac",
+ "scale" : "1x",
+ "size" : "16x16",
+ "filename": "Icon16.png"
+ },
+ {
+ "idiom" : "mac",
+ "scale" : "2x",
+ "size" : "16x16",
+ "filename": "Icon32.png"
+ },
+ {
+ "idiom" : "mac",
+ "scale" : "1x",
+ "size" : "32x32",
+ "filename": "Icon32.png"
+ },
+ {
+ "idiom" : "mac",
+ "scale" : "2x",
+ "size" : "32x32",
+ "filename": "Icon64.png"
+ },
+ {
+ "idiom" : "mac",
+ "scale" : "1x",
+ "size" : "128x128",
+ "filename": "Icon128.png"
+ },
+ {
+ "idiom" : "mac",
+ "scale" : "2x",
+ "size" : "128x128",
+ "filename": "Icon256.png"
+ },
+ {
+ "idiom" : "mac",
+ "scale" : "1x",
+ "size" : "256x256",
+ "filename": "Icon256.png"
+ },
+ {
+ "idiom" : "mac",
+ "scale" : "2x",
+ "size" : "256x256",
+ "filename": "Icon512.png"
+ },
+ {
+ "idiom" : "mac",
+ "scale" : "1x",
+ "size" : "512x512",
+ "filename": "Icon512.png"
+ },
+ {
+ "idiom" : "mac",
+ "scale" : "2x",
+ "size" : "512x512",
+ "filename": "Icon1024.png"
+ }
+ ],
+ "info": {
+ "version": 1,
+ "author": "xcode"
+ },
+}
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon1024.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon1024.png
new file mode 100644
index 000000000..d76627d49
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon1024.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon128.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon128.png
new file mode 100644
index 000000000..0f75ad9c6
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon128.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon16.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon16.png
new file mode 100644
index 000000000..fbbb18701
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon16.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon256.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon256.png
new file mode 100644
index 000000000..5233b44b5
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon256.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon32.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon32.png
new file mode 100644
index 000000000..5ac181616
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon32.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon512.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon512.png
new file mode 100644
index 000000000..b152227c7
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon512.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon64.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon64.png
new file mode 100644
index 000000000..5c497ade8
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Assets.xcassets/AppIcon.appiconset/Icon64.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Entitlements.plist b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Entitlements.plist
new file mode 100644
index 000000000..099388e90
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Entitlements.plist
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Info.plist b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Info.plist
new file mode 100644
index 000000000..bfc560a2d
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Info.plist
@@ -0,0 +1,34 @@
+
+
+
+
+ CFBundleDisplayName
+ MauiApp.1
+ CFBundleIdentifier
+ com.companyname.mauiapp
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1.0
+
+
+
+
+
+
+
+
+ UIDeviceFamily
+
+ 2
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ XSAppIconAssets
+ Assets.xcassets/AppIcon.appiconset
+
+
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Main.cs b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Main.cs
new file mode 100644
index 000000000..52b8c6738
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Main.cs
@@ -0,0 +1,15 @@
+using ObjCRuntime;
+using UIKit;
+
+namespace MauiApp._1.Mac;
+
+public class Program
+{
+ // This is the main entry point of the application.
+ static void Main(string[] args)
+ {
+ // if you want to use a different Application Delegate class from "AppDelegate"
+ // you can specify it here.
+ UIApplication.Main(args, null, typeof(AppDelegate));
+ }
+}
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/MauiApp.1.Mac.csproj b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/MauiApp.1.Mac.csproj
new file mode 100644
index 000000000..f94db875e
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/MauiApp.1.Mac.csproj
@@ -0,0 +1,22 @@
+
+
+
+ DOTNET_TFM-maccatalyst
+ 13.1
+ Exe
+ enable
+ enable
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/MauiProgram.cs b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/MauiProgram.cs
new file mode 100644
index 000000000..636413324
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/MauiProgram.cs
@@ -0,0 +1,14 @@
+namespace MauiApp._1.Mac;
+
+public static class MauiProgram
+{
+ public static MauiApp CreateMauiApp()
+ {
+ var builder = MauiApp.CreateBuilder();
+
+ builder
+ .UseSharedMauiApp();
+
+ return builder.Build();
+ }
+}
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Resources/AboutMacCatalystResources.txt b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Resources/AboutMacCatalystResources.txt
new file mode 100644
index 000000000..08e8a109a
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Resources/AboutMacCatalystResources.txt
@@ -0,0 +1 @@
+This folder can contain all the Mac Catalyst-specific resources that your app may use.
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Resources/LaunchScreen.xib b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Resources/LaunchScreen.xib
new file mode 100644
index 000000000..819020174
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Resources/LaunchScreen.xib
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Resources/dotnet_bot_devices.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Resources/dotnet_bot_devices.png
new file mode 100644
index 000000000..ddfdfcf0d
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Resources/dotnet_bot_devices.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Resources/dotnet_bot_devices@2x.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Resources/dotnet_bot_devices@2x.png
new file mode 100644
index 000000000..bd3952f54
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Resources/dotnet_bot_devices@2x.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Resources/dotnet_bot_devices@3x.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Resources/dotnet_bot_devices@3x.png
new file mode 100644
index 000000000..b61c64df3
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.Mac/Resources/dotnet_bot_devices@3x.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/App.xaml b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/App.xaml
new file mode 100644
index 000000000..843bd268c
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/App.xaml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/App.xaml.cs b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/App.xaml.cs
new file mode 100644
index 000000000..fd28c9d60
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/App.xaml.cs
@@ -0,0 +1,24 @@
+using Microsoft.UI.Xaml;
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace MauiApp._1.WinUI;
+
+///
+/// Provides application-specific behavior to supplement the default Application class.
+///
+public partial class App : MauiWinUIApplication
+{
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public App()
+ {
+ this.InitializeComponent();
+ }
+
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+}
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/AboutWinUIAssets.txt b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/AboutWinUIAssets.txt
new file mode 100644
index 000000000..8873ebcdf
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/AboutWinUIAssets.txt
@@ -0,0 +1,21 @@
+This folder can contain all the Windows-specific assets that your app may use.
+
+Accessing items here can be done using the `ms-appx` uri sceme;
+
+For example, if there is a file:
+
+ \Assets\my_image.png
+
+This can be accessed with the uri:
+
+ ms-appx:///Assets/my_image.png
+
+The files in the root ofthe Assets folder are meant to only be accessible from
+the Windows-specific files - such as the Package.appxmanifest. When using an
+asset for the manifest, you would refer to it with the `Asset\` prefix.
+
+For images that are meant to be accessed from cross-platform code, like XAML
+files, images should be placed into the `Assets\Images` folder as those are
+packaged differently to ensure the path matches that for the other platforms.
+
+For more information, see the Assets\ImagesAboutWinUIImages.txt file.
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/AboutWinUIImages.txt b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/AboutWinUIImages.txt
new file mode 100644
index 000000000..487652f73
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/AboutWinUIImages.txt
@@ -0,0 +1,13 @@
+This folder can contain all the Windows-specific images that your app may use.
+
+The images in the `Images` sub folder are easily accessible in cross-platform
+code because they are packaged in the root of the application making them
+have a similar path to the other platforms.
+
+For example, if there is a file:
+
+ /Assets/Images/my_image.png
+
+This can be accessed with the same code as the other platforms in shared code:
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/dotnet_bot_devices.scale-100.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/dotnet_bot_devices.scale-100.png
new file mode 100644
index 000000000..ddfdfcf0d
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/dotnet_bot_devices.scale-100.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/dotnet_bot_devices.scale-125.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/dotnet_bot_devices.scale-125.png
new file mode 100644
index 000000000..db96ebee0
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/dotnet_bot_devices.scale-125.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/dotnet_bot_devices.scale-150.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/dotnet_bot_devices.scale-150.png
new file mode 100644
index 000000000..55eb32f74
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/dotnet_bot_devices.scale-150.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/dotnet_bot_devices.scale-200.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/dotnet_bot_devices.scale-200.png
new file mode 100644
index 000000000..bd3952f54
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/dotnet_bot_devices.scale-200.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/dotnet_bot_devices.scale-400.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/dotnet_bot_devices.scale-400.png
new file mode 100644
index 000000000..969ac3165
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Images/dotnet_bot_devices.scale-400.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/LockScreenLogo.scale-200.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/LockScreenLogo.scale-200.png
new file mode 100644
index 000000000..7440f0d4b
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/LockScreenLogo.scale-200.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/SplashScreen.scale-200.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/SplashScreen.scale-200.png
new file mode 100644
index 000000000..32f486a86
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/SplashScreen.scale-200.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Square150x150Logo.scale-200.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Square150x150Logo.scale-200.png
new file mode 100644
index 000000000..53ee3777e
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Square150x150Logo.scale-200.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Square44x44Logo.scale-200.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Square44x44Logo.scale-200.png
new file mode 100644
index 000000000..f713bba67
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Square44x44Logo.scale-200.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 000000000..dc9f5bea0
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/StoreLogo.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/StoreLogo.png
new file mode 100644
index 000000000..a4586f26b
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/StoreLogo.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Wide310x150Logo.scale-200.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Wide310x150Logo.scale-200.png
new file mode 100644
index 000000000..8b4a5d0dd
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Assets/Wide310x150Logo.scale-200.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/MauiApp.1.WinUI.csproj b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/MauiApp.1.WinUI.csproj
new file mode 100644
index 000000000..e1b51eab1
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/MauiApp.1.WinUI.csproj
@@ -0,0 +1,58 @@
+
+
+
+ WinExe
+ DOTNET_TFM-windows10.0.19041.0
+ 10.0.17763.0
+ MauiApp.1.WinUI
+ app.manifest
+ x86;x64;ARM64
+ win10-x86;win10-x64;win10-arm64
+ win10-$(Platform).pubxml
+ true
+ true
+ enable
+ enable
+ true
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/MauiProgram.cs b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/MauiProgram.cs
new file mode 100644
index 000000000..445fb2f32
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/MauiProgram.cs
@@ -0,0 +1,14 @@
+namespace MauiApp._1.WinUI;
+
+public static class MauiProgram
+{
+ public static MauiApp CreateMauiApp()
+ {
+ var builder = MauiApp.CreateBuilder();
+
+ builder
+ .UseSharedMauiApp();
+
+ return builder.Build();
+ }
+}
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Package.appxmanifest b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Package.appxmanifest
new file mode 100644
index 000000000..c91e49491
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Package.appxmanifest
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+ MauiApp.1
+ User Name
+ Assets\StoreLogo.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Properties/PublishProfiles/win10-arm64.pubxml b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Properties/PublishProfiles/win10-arm64.pubxml
new file mode 100644
index 000000000..a7fdd16b6
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Properties/PublishProfiles/win10-arm64.pubxml
@@ -0,0 +1,20 @@
+
+
+
+
+ FileSystem
+ ARM64
+ win10-arm64
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ False
+ False
+ True
+
+
+
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Properties/PublishProfiles/win10-x64.pubxml b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Properties/PublishProfiles/win10-x64.pubxml
new file mode 100644
index 000000000..26ea7e55c
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Properties/PublishProfiles/win10-x64.pubxml
@@ -0,0 +1,20 @@
+
+
+
+
+ FileSystem
+ x64
+ win10-x64
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ False
+ False
+ True
+
+
+
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Properties/PublishProfiles/win10-x86.pubxml b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Properties/PublishProfiles/win10-x86.pubxml
new file mode 100644
index 000000000..34d14d4d4
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Properties/PublishProfiles/win10-x86.pubxml
@@ -0,0 +1,20 @@
+
+
+
+
+ FileSystem
+ x86
+ win10-x86
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ False
+ False
+ True
+
+
+
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Properties/launchSettings.json b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Properties/launchSettings.json
new file mode 100644
index 000000000..af97d49d1
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/Properties/launchSettings.json
@@ -0,0 +1,8 @@
+{
+ "profiles": {
+ "Windows Machine": {
+ "commandName": "MsixPackage",
+ "nativeDebugging": true
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/app.manifest b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/app.manifest
new file mode 100644
index 000000000..41ef234cb
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.WinUI/app.manifest
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PerMonitorV2
+
+
+
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/AppDelegate.cs b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/AppDelegate.cs
new file mode 100644
index 000000000..fea446bed
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/AppDelegate.cs
@@ -0,0 +1,9 @@
+using Foundation;
+
+namespace MauiApp._1.iOS;
+
+[Register(nameof(AppDelegate))]
+public class AppDelegate : MauiUIApplicationDelegate
+{
+ protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
+}
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 000000000..98f4d035c
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,117 @@
+{
+ "images": [
+ {
+ "scale": "2x",
+ "size": "20x20",
+ "idiom": "iphone",
+ "filename": "Icon40.png"
+ },
+ {
+ "scale": "3x",
+ "size": "20x20",
+ "idiom": "iphone",
+ "filename": "Icon60.png"
+ },
+ {
+ "scale": "2x",
+ "size": "29x29",
+ "idiom": "iphone",
+ "filename": "Icon58.png"
+ },
+ {
+ "scale": "3x",
+ "size": "29x29",
+ "idiom": "iphone",
+ "filename": "Icon87.png"
+ },
+ {
+ "scale": "2x",
+ "size": "40x40",
+ "idiom": "iphone",
+ "filename": "Icon80.png"
+ },
+ {
+ "scale": "3x",
+ "size": "40x40",
+ "idiom": "iphone",
+ "filename": "Icon120.png"
+ },
+ {
+ "scale": "2x",
+ "size": "60x60",
+ "idiom": "iphone",
+ "filename": "Icon120.png"
+ },
+ {
+ "scale": "3x",
+ "size": "60x60",
+ "idiom": "iphone",
+ "filename": "Icon180.png"
+ },
+ {
+ "scale": "1x",
+ "size": "20x20",
+ "idiom": "ipad",
+ "filename": "Icon20.png"
+ },
+ {
+ "scale": "2x",
+ "size": "20x20",
+ "idiom": "ipad",
+ "filename": "Icon40.png"
+ },
+ {
+ "scale": "1x",
+ "size": "29x29",
+ "idiom": "ipad",
+ "filename": "Icon29.png"
+ },
+ {
+ "scale": "2x",
+ "size": "29x29",
+ "idiom": "ipad",
+ "filename": "Icon58.png"
+ },
+ {
+ "scale": "1x",
+ "size": "40x40",
+ "idiom": "ipad",
+ "filename": "Icon40.png"
+ },
+ {
+ "scale": "2x",
+ "size": "40x40",
+ "idiom": "ipad",
+ "filename": "Icon80.png"
+ },
+ {
+ "scale": "1x",
+ "size": "76x76",
+ "idiom": "ipad",
+ "filename": "Icon76.png"
+ },
+ {
+ "scale": "2x",
+ "size": "76x76",
+ "idiom": "ipad",
+ "filename": "Icon152.png"
+ },
+ {
+ "scale": "2x",
+ "size": "83.5x83.5",
+ "idiom": "ipad",
+ "filename": "Icon167.png"
+ },
+ {
+ "scale": "1x",
+ "size": "1024x1024",
+ "idiom": "ios-marketing",
+ "filename": "Icon1024.png"
+ }
+ ],
+ "properties": {},
+ "info": {
+ "version": 1,
+ "author": "xcode"
+ }
+}
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png
new file mode 100644
index 000000000..b57320541
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png
new file mode 100644
index 000000000..0b74155a2
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png
new file mode 100644
index 000000000..1c1931312
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png
new file mode 100644
index 000000000..4e3e8bd8e
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png
new file mode 100644
index 000000000..40a737125
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png
new file mode 100644
index 000000000..8bb138325
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png
new file mode 100644
index 000000000..bdd130c35
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png
new file mode 100644
index 000000000..75d27899e
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png
new file mode 100644
index 000000000..06afa6091
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png
new file mode 100644
index 000000000..2e0db2a61
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png
new file mode 100644
index 000000000..755bc880a
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png
new file mode 100644
index 000000000..6559bb4da
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png
new file mode 100644
index 000000000..ca28c8d7a
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Entitlements.plist b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Entitlements.plist
new file mode 100644
index 000000000..6631ffa6f
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Entitlements.plist
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Info.plist b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Info.plist
new file mode 100644
index 000000000..8aec6ac4f
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Info.plist
@@ -0,0 +1,42 @@
+
+
+
+
+ CFBundleDisplayName
+ MauiApp.1
+ CFBundleIdentifier
+ com.companyname.mauiapp
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1.0
+ LSRequiresIPhoneOS
+
+ UIDeviceFamily
+
+ 1
+ 2
+
+ UILaunchStoryboardName
+ LaunchScreen
+ UIRequiredDeviceCapabilities
+
+ armv7
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ XSAppIconAssets
+ Assets.xcassets/AppIcon.appiconset
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Main.cs b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Main.cs
new file mode 100644
index 000000000..0c8e7fd10
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Main.cs
@@ -0,0 +1,15 @@
+using ObjCRuntime;
+using UIKit;
+
+namespace MauiApp._1.iOS;
+
+public class Program
+{
+ // This is the main entry point of the application.
+ static void Main(string[] args)
+ {
+ // if you want to use a different Application Delegate class from "AppDelegate"
+ // you can specify it here.
+ UIApplication.Main(args, null, typeof(AppDelegate));
+ }
+}
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/MauiApp.1.iOS.csproj b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/MauiApp.1.iOS.csproj
new file mode 100644
index 000000000..7a85e2831
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/MauiApp.1.iOS.csproj
@@ -0,0 +1,22 @@
+
+
+
+ DOTNET_TFM-ios
+ 11.0
+ Exe
+ enable
+ enable
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/MauiProgram.cs b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/MauiProgram.cs
new file mode 100644
index 000000000..2b59716cc
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/MauiProgram.cs
@@ -0,0 +1,14 @@
+namespace MauiApp._1.iOS;
+
+public static class MauiProgram
+{
+ public static MauiApp CreateMauiApp()
+ {
+ var builder = MauiApp.CreateBuilder();
+
+ builder
+ .UseSharedMauiApp();
+
+ return builder.Build();
+ }
+}
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/AboutiOSResources.txt b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/AboutiOSResources.txt
new file mode 100644
index 000000000..aa5d43448
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/AboutiOSResources.txt
@@ -0,0 +1 @@
+This folder can contain all the iOS-specific resources that your app may use.
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/LaunchScreen.storyboard b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/LaunchScreen.storyboard
new file mode 100644
index 000000000..6aec96718
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/LaunchScreen.storyboard
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/LaunchScreen.xib b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/LaunchScreen.xib
new file mode 100644
index 000000000..43749da15
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/LaunchScreen.xib
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/dotnet_bot_devices.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/dotnet_bot_devices.png
new file mode 100644
index 000000000..ddfdfcf0d
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/dotnet_bot_devices.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/dotnet_bot_devices@2x.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/dotnet_bot_devices@2x.png
new file mode 100644
index 000000000..bd3952f54
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/dotnet_bot_devices@2x.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/dotnet_bot_devices@3x.png b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/dotnet_bot_devices@3x.png
new file mode 100644
index 000000000..b61c64df3
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1.iOS/Resources/dotnet_bot_devices@3x.png differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1/App.xaml b/src/Templates/src/templates/maui-multiproject/MauiApp.1/App.xaml
new file mode 100644
index 000000000..f0d41ff06
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1/App.xaml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1/App.xaml.cs b/src/Templates/src/templates/maui-multiproject/MauiApp.1/App.xaml.cs
new file mode 100644
index 000000000..7f3b59d3b
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1/App.xaml.cs
@@ -0,0 +1,11 @@
+namespace MauiApp._1;
+
+public partial class App : Application
+{
+ public App()
+ {
+ InitializeComponent();
+
+ MainPage = new AppShell();
+ }
+}
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1/AppShell.xaml b/src/Templates/src/templates/maui-multiproject/MauiApp.1/AppShell.xaml
new file mode 100644
index 000000000..0708e98af
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1/AppShell.xaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1/AppShell.xaml.cs b/src/Templates/src/templates/maui-multiproject/MauiApp.1/AppShell.xaml.cs
new file mode 100644
index 000000000..b0d434474
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1/AppShell.xaml.cs
@@ -0,0 +1,9 @@
+namespace MauiApp._1;
+
+public partial class AppShell : Shell
+{
+ public AppShell()
+ {
+ InitializeComponent();
+ }
+}
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1/MainPage.xaml b/src/Templates/src/templates/maui-multiproject/MauiApp.1/MainPage.xaml
new file mode 100644
index 000000000..81c95ce3d
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1/MainPage.xaml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1/MainPage.xaml.cs b/src/Templates/src/templates/maui-multiproject/MauiApp.1/MainPage.xaml.cs
new file mode 100644
index 000000000..fc2c0e9ab
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1/MainPage.xaml.cs
@@ -0,0 +1,24 @@
+namespace MauiApp._1;
+
+public partial class MainPage : ContentPage
+{
+ int count = 0;
+
+ public MainPage()
+ {
+ InitializeComponent();
+ }
+
+ private void OnCounterClicked(object sender, EventArgs e)
+ {
+ count++;
+
+ if (count == 1)
+ CounterBtn.Text = $"Clicked {count} time";
+ else
+ CounterBtn.Text = $"Clicked {count} times";
+
+ SemanticScreenReader.Announce(CounterBtn.Text);
+ }
+}
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1/MauiApp.1.csproj b/src/Templates/src/templates/maui-multiproject/MauiApp.1/MauiApp.1.csproj
new file mode 100644
index 000000000..ef6b7a9c9
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1/MauiApp.1.csproj
@@ -0,0 +1,29 @@
+
+
+
+ DOTNET_TFM
+ true
+ enable
+ true
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1/MauiProgramExtensions.cs b/src/Templates/src/templates/maui-multiproject/MauiApp.1/MauiProgramExtensions.cs
new file mode 100644
index 000000000..1e929d3c8
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1/MauiProgramExtensions.cs
@@ -0,0 +1,25 @@
+using Microsoft.Extensions.Logging;
+
+namespace MauiApp._1;
+
+public static class MauiProgramExtensions
+{
+ public static MauiAppBuilder UseSharedMauiApp(this MauiAppBuilder builder)
+ {
+ builder
+ .UseMauiApp()
+ .ConfigureFonts(fonts =>
+ {
+ fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
+ fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
+ });
+
+//-:cnd:noEmit
+#if DEBUG
+ builder.Logging.AddDebug();
+#endif
+//+:cnd:noEmit
+
+ return builder;
+ }
+}
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Fonts/OpenSans-Regular.ttf b/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Fonts/OpenSans-Regular.ttf
new file mode 100644
index 000000000..098a1a9c5
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Fonts/OpenSans-Regular.ttf differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Fonts/OpenSans-Semibold.ttf b/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Fonts/OpenSans-Semibold.ttf
new file mode 100644
index 000000000..b5b8e0f38
Binary files /dev/null and b/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Fonts/OpenSans-Semibold.ttf differ
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Images/dotnet_bot.svg b/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Images/dotnet_bot.svg
new file mode 100644
index 000000000..abfaff26a
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Images/dotnet_bot.svg
@@ -0,0 +1,93 @@
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Raw/AboutAssets.txt b/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Raw/AboutAssets.txt
new file mode 100644
index 000000000..15d624484
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Raw/AboutAssets.txt
@@ -0,0 +1,15 @@
+Any raw assets you want to be deployed with your application can be placed in
+this directory (and child directories). Deployment of the asset to your application
+is automatically handled by the following `MauiAsset` Build Action within your `.csproj`.
+
+
+
+These files will be deployed with you package and will be accessible using Essentials:
+
+ async Task LoadMauiAsset()
+ {
+ using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt");
+ using var reader = new StreamReader(stream);
+
+ var contents = reader.ReadToEnd();
+ }
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Styles/Colors.xaml b/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Styles/Colors.xaml
new file mode 100644
index 000000000..1bde6dd18
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Styles/Colors.xaml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ #512BD4
+ #DFD8F7
+ #2B0B98
+ White
+ Black
+ #E1E1E1
+ #C8C8C8
+ #ACACAC
+ #919191
+ #6E6E6E
+ #404040
+ #212121
+ #141414
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #F7B548
+ #FFD590
+ #FFE5B9
+ #28C2D1
+ #7BDDEF
+ #C3F2F4
+ #3E8EED
+ #72ACF1
+ #A7CBF6
+
+
diff --git a/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Styles/Styles.xaml b/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Styles/Styles.xaml
new file mode 100644
index 000000000..890ced076
--- /dev/null
+++ b/src/Templates/src/templates/maui-multiproject/MauiApp.1/Resources/Styles/Styles.xaml
@@ -0,0 +1,408 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/TestUtils/src/Microsoft.Maui.IntegrationTests/TemplateTests.cs b/src/TestUtils/src/Microsoft.Maui.IntegrationTests/TemplateTests.cs
index e9e35f361..289f5eab2 100644
--- a/src/TestUtils/src/Microsoft.Maui.IntegrationTests/TemplateTests.cs
+++ b/src/TestUtils/src/Microsoft.Maui.IntegrationTests/TemplateTests.cs
@@ -48,6 +48,40 @@ namespace Microsoft.Maui.IntegrationTests
$"Project {Path.GetFileName(projectFile)} failed to build. Check test output/attachments for errors.");
}
+ [Test]
+ [TestCase("Debug")]
+ [TestCase("Release")]
+ public void BuildMultiProject(string config)
+ {
+ var projectDir = TestDirectory;
+ var name = Path.GetFileName(projectDir);
+ var solutionFile = Path.Combine(projectDir, $"{name}.sln");
+
+ Assert.IsTrue(DotnetInternal.New("maui-multiproject", projectDir, DotNetCurrent),
+ $"Unable to create template maui-multiproject. Check test output for errors.");
+
+ Assert.IsTrue(DotnetInternal.New("sln", projectDir),
+ $"Unable to create solution. Check test output for errors.");
+
+ Assert.IsTrue(DotnetInternal.Run("sln", $"{solutionFile} add {projectDir}/{name}.Droid/{name}.Droid.csproj"),
+ $"Unable to add Android project to solution. Check test output for errors.");
+ Assert.IsTrue(DotnetInternal.Run("sln", $"{solutionFile} add {projectDir}/{name}.iOS/{name}.iOS.csproj"),
+ $"Unable to add iOS project to solution. Check test output for errors.");
+ Assert.IsTrue(DotnetInternal.Run("sln", $"{solutionFile} add {projectDir}/{name}.Mac/{name}.Mac.csproj"),
+ $"Unable to add Mac Catalyst project to solution. Check test output for errors.");
+
+ if (TestEnvironment.IsWindows)
+ {
+ // TODO: Enable the Windows build since it refuses to build on CI
+ // https://github.com/dotnet/maui/issues/20598
+ // Assert.IsTrue(DotnetInternal.Run("sln", $"{solutionFile} add {projectDir}/{name}.WinUI/{name}.WinUI.csproj"),
+ // $"Unable to add WinUI project to solution. Check test output for errors.");
+ }
+
+ Assert.IsTrue(DotnetInternal.Build(solutionFile, config, properties: BuildProps, msbuildWarningsAsErrors: true),
+ $"Solution {name} failed to build. Check test output/attachments for errors.");
+ }
+
[Test]
// with spaces
[TestCase("maui", "Project Space", "projectspace")]