diff --git a/.nuspec/Microsoft.Maui.Controls.DefaultItems.props b/.nuspec/Microsoft.Maui.Controls.DefaultItems.props
index b9ff93720..8b3d9aef8 100644
--- a/.nuspec/Microsoft.Maui.Controls.DefaultItems.props
+++ b/.nuspec/Microsoft.Maui.Controls.DefaultItems.props
@@ -1,3 +1,7 @@
+
diff --git a/.nuspec/Microsoft.Maui.Controls.SingleProject.props b/.nuspec/Microsoft.Maui.Controls.SingleProject.props
index 1971de0bc..01e72667c 100644
--- a/.nuspec/Microsoft.Maui.Controls.SingleProject.props
+++ b/.nuspec/Microsoft.Maui.Controls.SingleProject.props
@@ -1,3 +1,8 @@
+
+
diff --git a/.nuspec/Microsoft.Maui.Controls.props b/.nuspec/Microsoft.Maui.Controls.props
index bcd2d879e..a758e7344 100644
--- a/.nuspec/Microsoft.Maui.Controls.props
+++ b/.nuspec/Microsoft.Maui.Controls.props
@@ -9,7 +9,7 @@
The actual item groups are in a separate conditionally-imported file as they use constructs that
are not compatible with older MSBuild versions.
-->
-
+
<_IsHotRestartDefined>$([System.Text.RegularExpressions.Regex]::IsMatch('$(DefineConstants.Trim())', '(^|;)HOTRESTART($|;)'))
diff --git a/.nuspec/Microsoft.Maui.Resizetizer.targets b/.nuspec/Microsoft.Maui.Resizetizer.targets
index 4f96ca751..7f804ec7d 100644
--- a/.nuspec/Microsoft.Maui.Resizetizer.targets
+++ b/.nuspec/Microsoft.Maui.Resizetizer.targets
@@ -210,6 +210,7 @@
Targets="GetMauiItems"
Projects="@(ProjectReference)"
BuildInParallel="true"
+ Properties="TargetFramework=$(TargetFramework)"
SkipNonexistentProjects="true"
SkipNonexistentTargets="true">
-
-
+
+
+
+
+
diff --git a/src/Compatibility/Core/src/Android.FormsViewGroup/Compatibility.Android.FormsViewGroup-net6.csproj b/src/Compatibility/Core/src/Android.FormsViewGroup/Compatibility.Android.FormsViewGroup-net6.csproj
index 9af9c560f..74e23ccd4 100644
--- a/src/Compatibility/Core/src/Android.FormsViewGroup/Compatibility.Android.FormsViewGroup-net6.csproj
+++ b/src/Compatibility/Core/src/Android.FormsViewGroup/Compatibility.Android.FormsViewGroup-net6.csproj
@@ -3,7 +3,7 @@
net6.0-android
Microsoft.Maui.Controls.Compatibility.Android
Microsoft.Maui.Controls.Compatibility.Android.FormsViewGroup
- Library
+ false
disable
diff --git a/src/Compatibility/Core/src/Compatibility-net6.csproj b/src/Compatibility/Core/src/Compatibility-net6.csproj
index 5ef19c96b..adcda46cb 100644
--- a/src/Compatibility/Core/src/Compatibility-net6.csproj
+++ b/src/Compatibility/Core/src/Compatibility-net6.csproj
@@ -8,9 +8,7 @@
Android\
iOS\
WinUI\
-
-
- Microsoft.Maui.Controls.Compatibility
+ false
diff --git a/src/Controls/Maps/src/Controls.Maps-net6.csproj b/src/Controls/Maps/src/Controls.Maps-net6.csproj
index e6784dd22..a230574c8 100644
--- a/src/Controls/Maps/src/Controls.Maps-net6.csproj
+++ b/src/Controls/Maps/src/Controls.Maps-net6.csproj
@@ -2,12 +2,7 @@
netstandard2.1;netstandard2.0;$(MauiPlatforms)
Microsoft.Maui.Controls.Maps
-
-
- Microsoft.Maui.Controls.Maps
-
-
- Provides Maps support for Microsoft MAUI Controls
+ false
diff --git a/src/Controls/samples/Controls.Sample.Droid/Maui.Controls.Sample.Droid-net6.csproj b/src/Controls/samples/Controls.Sample.Droid/Maui.Controls.Sample.Droid-net6.csproj
index 600eadebc..9cf4ae2ea 100644
--- a/src/Controls/samples/Controls.Sample.Droid/Maui.Controls.Sample.Droid-net6.csproj
+++ b/src/Controls/samples/Controls.Sample.Droid/Maui.Controls.Sample.Droid-net6.csproj
@@ -1,4 +1,4 @@
-
+
net6.0-android
@@ -14,11 +14,12 @@
-
+
+
+
-
\ No newline at end of file
diff --git a/src/Controls/samples/Controls.Sample.MacCatalyst/Maui.Controls.Sample.MacCatalyst-net6.csproj b/src/Controls/samples/Controls.Sample.MacCatalyst/Maui.Controls.Sample.MacCatalyst-net6.csproj
index 9f470176d..c9a39c379 100644
--- a/src/Controls/samples/Controls.Sample.MacCatalyst/Maui.Controls.Sample.MacCatalyst-net6.csproj
+++ b/src/Controls/samples/Controls.Sample.MacCatalyst/Maui.Controls.Sample.MacCatalyst-net6.csproj
@@ -1,4 +1,4 @@
-
+
net6.0-maccatalyst
@@ -9,10 +9,12 @@
false
-
+
+
+
diff --git a/src/Controls/samples/Controls.Sample.SingleProject/Maui.Controls.Sample.SingleProject.csproj b/src/Controls/samples/Controls.Sample.SingleProject/Maui.Controls.Sample.SingleProject.csproj
index 73cef4c95..74be19869 100644
--- a/src/Controls/samples/Controls.Sample.SingleProject/Maui.Controls.Sample.SingleProject.csproj
+++ b/src/Controls/samples/Controls.Sample.SingleProject/Maui.Controls.Sample.SingleProject.csproj
@@ -12,7 +12,7 @@
false
-
+
@@ -27,6 +27,6 @@
-
+
\ No newline at end of file
diff --git a/src/Controls/samples/Controls.Sample.WinUI/Maui.Controls.Sample.WinUI.csproj b/src/Controls/samples/Controls.Sample.WinUI/Maui.Controls.Sample.WinUI.csproj
index f4d62c09b..260c74511 100644
--- a/src/Controls/samples/Controls.Sample.WinUI/Maui.Controls.Sample.WinUI.csproj
+++ b/src/Controls/samples/Controls.Sample.WinUI/Maui.Controls.Sample.WinUI.csproj
@@ -10,18 +10,17 @@
win10-x86;win10-x64;win10-arm64
-
+
-
-
-
-
+
+
+
diff --git a/src/Controls/samples/Controls.Sample.iOS/Maui.Controls.Sample.iOS-net6.csproj b/src/Controls/samples/Controls.Sample.iOS/Maui.Controls.Sample.iOS-net6.csproj
index c06711482..3e9cf8a2c 100644
--- a/src/Controls/samples/Controls.Sample.iOS/Maui.Controls.Sample.iOS-net6.csproj
+++ b/src/Controls/samples/Controls.Sample.iOS/Maui.Controls.Sample.iOS-net6.csproj
@@ -1,4 +1,4 @@
-
+
net6.0-ios
@@ -9,10 +9,12 @@
false
-
+
+
+
diff --git a/src/Controls/samples/Controls.Sample/Maui.Controls.Sample-net6.csproj b/src/Controls/samples/Controls.Sample/Maui.Controls.Sample-net6.csproj
index 5dce97f65..1a802d0c6 100644
--- a/src/Controls/samples/Controls.Sample/Maui.Controls.Sample-net6.csproj
+++ b/src/Controls/samples/Controls.Sample/Maui.Controls.Sample-net6.csproj
@@ -14,14 +14,17 @@
-
-
+
+
+
+
+
-
+
@@ -30,6 +33,8 @@
+
+
@@ -49,5 +54,6 @@
-
+
+
diff --git a/src/Controls/samples/Directory.Build.props b/src/Controls/samples/Directory.Build.props
index 303e35a35..ce8353046 100644
--- a/src/Controls/samples/Directory.Build.props
+++ b/src/Controls/samples/Directory.Build.props
@@ -1,8 +1,16 @@
true
+ true
-
-
-
+
+
+
+ true
+ $(MauiRootDirectory)packages/
+
+
\ No newline at end of file
diff --git a/src/Controls/samples/Directory.Build.targets b/src/Controls/samples/Directory.Build.targets
index b4c8fa840..fd3979999 100644
--- a/src/Controls/samples/Directory.Build.targets
+++ b/src/Controls/samples/Directory.Build.targets
@@ -1,15 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/src/Controls/samples/Maui.InTree.props b/src/Controls/samples/Maui.InTree.props
new file mode 100644
index 000000000..5882f35c9
--- /dev/null
+++ b/src/Controls/samples/Maui.InTree.props
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/Controls/samples/Maui.InTree.targets b/src/Controls/samples/Maui.InTree.targets
new file mode 100644
index 000000000..e2e5dcaeb
--- /dev/null
+++ b/src/Controls/samples/Maui.InTree.targets
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Controls/src/Build.Tasks/Controls.Build.Tasks-net6.csproj b/src/Controls/src/Build.Tasks/Controls.Build.Tasks-net6.csproj
index 5dbcf9a33..0bb93b85c 100644
--- a/src/Controls/src/Build.Tasks/Controls.Build.Tasks-net6.csproj
+++ b/src/Controls/src/Build.Tasks/Controls.Build.Tasks-net6.csproj
@@ -19,6 +19,7 @@
..\..\..\..\eng\microsoft.maui.controls.snk
$(DefineConstants);STRONG_NAME -->
false
+ false
@@ -33,13 +34,6 @@
-
- Microsoft.Maui.Controls.Build.Tasks
- False
- $(NoWarn);NU5100;NU5128;
- False
-
-
diff --git a/src/Controls/src/Core/Controls.Core-net6.csproj b/src/Controls/src/Core/Controls.Core-net6.csproj
index ba385deb0..abe5c3c3e 100644
--- a/src/Controls/src/Core/Controls.Core-net6.csproj
+++ b/src/Controls/src/Core/Controls.Core-net6.csproj
@@ -4,9 +4,8 @@
Microsoft.Maui.Controls
Microsoft.Maui.Controls
disable
- $(NoWarn);NU5128
+ false
<_MauiDesignDllBuild Condition=" '$(OS)' != 'Unix' And '$(MSBuildRuntimeType)' == 'Full'">True
- Microsoft.Maui.Controls
high
diff --git a/src/Controls/src/SourceGen/Controls.SourceGen-net6.csproj b/src/Controls/src/SourceGen/Controls.SourceGen-net6.csproj
index 806eedda4..f1e05d4a7 100644
--- a/src/Controls/src/SourceGen/Controls.SourceGen-net6.csproj
+++ b/src/Controls/src/SourceGen/Controls.SourceGen-net6.csproj
@@ -5,7 +5,7 @@
enable
Microsoft.Maui.Controls.SourceGen
Microsoft.Maui.Controls.SourceGen
- Microsoft.Maui.Controls.SourceGen
+ false
$(NoWarn);NU5128;
diff --git a/src/Controls/src/SourceGen/Controls.SourceGen.csproj b/src/Controls/src/SourceGen/Controls.SourceGen.csproj
index 441ee4ccf..ed467a511 100644
--- a/src/Controls/src/SourceGen/Controls.SourceGen.csproj
+++ b/src/Controls/src/SourceGen/Controls.SourceGen.csproj
@@ -5,6 +5,7 @@
enable
Microsoft.Maui.Controls.SourceGen
Microsoft.Maui.Controls.SourceGen
+ false
diff --git a/src/Controls/src/Xaml/Controls.Xaml-net6.csproj b/src/Controls/src/Xaml/Controls.Xaml-net6.csproj
index 194699350..a93a99b4c 100644
--- a/src/Controls/src/Xaml/Controls.Xaml-net6.csproj
+++ b/src/Controls/src/Xaml/Controls.Xaml-net6.csproj
@@ -3,8 +3,9 @@
netstandard2.0;$(MauiPlatforms)
Microsoft.Maui.Controls.Xaml
Microsoft.Maui.Controls.Xaml
+ false
<_MauiDesignDllBuild Condition=" '$(OS)' != 'Unix' And '$(MSBuildRuntimeType)' == 'Full'">True
- $(NoWarn);CA2200;NU5128
+ $(NoWarn);CA2200
Microsoft.Maui.Controls.Xaml
diff --git a/src/Core/src/Core-net6.csproj b/src/Core/src/Core-net6.csproj
index f101165bf..e1a2cbb0e 100644
--- a/src/Core/src/Core-net6.csproj
+++ b/src/Core/src/Core-net6.csproj
@@ -4,9 +4,7 @@
Microsoft.Maui
Microsoft.Maui
enable
-
-
- Microsoft.Maui.Core
+ false
@@ -19,7 +17,7 @@
-
+
diff --git a/src/Core/src/Core.csproj b/src/Core/src/Core.csproj
index 8237c3b1b..2bffc1805 100644
--- a/src/Core/src/Core.csproj
+++ b/src/Core/src/Core.csproj
@@ -5,9 +5,6 @@
Microsoft.Maui
enable
-
- Microsoft.Maui
-
@@ -15,7 +12,7 @@
-
+
diff --git a/src/DotNet/DotNet.csproj b/src/DotNet/DotNet.csproj
index 697b0efcb..7eba4788c 100644
--- a/src/DotNet/DotNet.csproj
+++ b/src/DotNet/DotNet.csproj
@@ -2,6 +2,7 @@
netstandard2.0
false
+ true
https://dot.net/v1/dotnet-install.ps1
@@ -25,8 +26,84 @@
_AcquirePacks;
+
+
+
+
+
+
+
+ <_InstallTempDirectory>$(DotNetTempDirectory)install/
+
+
+
+
+ <_PackagesToUnzip Include="$(PackageOutputPath)/Microsoft.NET.Sdk.Maui.Manifest-$(DotNetPreviewVersionBand).*.nupkg" />
+
+
+
+ <_WorkloadFiles Include="$(_InstallTempDirectory)data/WorkloadManifest.*" />
+
+
+
+
+
+
+ <_ThisDotNet>$(MSBuildExtensionsPath)../../dotnet
+ <_NuGetConfig>$(DotNetTempDirectory)NuGet.config
+ <_NuGetContent>
+
+
+
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+ <_RuntimePacks Include="$(PackageOutputPath)/*.Runtime.*.nupkg" />
+ <_RuntimePacks Include="$(PackageOutputPath)/Microsoft.Maui.Extensions.*.nupkg" />
+
+
+
+
+
+
+
+
<_Inputs>
@@ -88,6 +165,7 @@
+
@@ -113,7 +192,7 @@
// This is only in C#, because the equivalent MSBuild XML would not be pretty.
foreach (var file in Files)
{
- var name = Directory.GetParent (file).Parent.Parent.Name;
+ var name = string.IsNullOrEmpty(Name) ? Directory.GetParent (file).Parent.Parent.Name : Name;
var directory = Path.Combine(WorkloadDirectory, name.Replace($".manifest-{VersionBand}", ""));
Directory.CreateDirectory(directory);
var destination = Path.Combine(directory, Path.GetFileName(file));
diff --git a/src/Essentials/src/Essentials-net6.csproj b/src/Essentials/src/Essentials-net6.csproj
index fa105bddb..b34067584 100644
--- a/src/Essentials/src/Essentials-net6.csproj
+++ b/src/Essentials/src/Essentials-net6.csproj
@@ -5,9 +5,7 @@
Microsoft.Maui.Essentials
false
BI1234
-
-
- Microsoft.Maui.Essentials
+ false
diff --git a/src/Package/Package-net6.csproj b/src/Package/Package-net6.csproj
deleted file mode 100644
index 4353d82e9..000000000
--- a/src/Package/Package-net6.csproj
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
- net6.0;$(MauiPlatforms)
- Microsoft.Maui
- Microsoft.Maui.Package
- enable
- False
- $(NoWarn);NU5100;NU5128;
-
-
-
- Microsoft.Maui
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/SingleProject/Resizetizer/src/Resizetizer.csproj b/src/SingleProject/Resizetizer/src/Resizetizer.csproj
index 1478e9b93..67c4ec126 100644
--- a/src/SingleProject/Resizetizer/src/Resizetizer.csproj
+++ b/src/SingleProject/Resizetizer/src/Resizetizer.csproj
@@ -6,16 +6,10 @@
Microsoft.Maui.Resizetizer
9.0
- False
- $(NoWarn);NU5100;NU5128;
+ false
false
-
- Microsoft.Maui.Resizetizer
- False
-
-
@@ -50,27 +44,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/src/SingleProject/Resizetizer/src/ResizetizerPackages.projitems b/src/SingleProject/Resizetizer/src/ResizetizerPackages.projitems
new file mode 100644
index 000000000..2a34c4e11
--- /dev/null
+++ b/src/SingleProject/Resizetizer/src/ResizetizerPackages.projitems
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Templates/src/Microsoft.Maui.Templates.csproj b/src/Templates/src/Microsoft.Maui.Templates.csproj
index 8493243f6..b2e78530b 100644
--- a/src/Templates/src/Microsoft.Maui.Templates.csproj
+++ b/src/Templates/src/Microsoft.Maui.Templates.csproj
@@ -7,13 +7,13 @@
.NET MAUI Templates
Microsoft
Templates for .NET MAUI.
+ true
true
false
false
content
$(NoWarn);NU5128
- _UpdateTemplateVersions
@@ -21,28 +21,15 @@
-
-
-
-
-
- $(PackageVersion)
-
+
- <_TemplateJsonFile Include="templates\*\.template.config\template.json" />
- <_TemplateJsonFileWithContent
- Include="@(_TemplateJsonFile)"
- Contents="$([System.IO.File]::ReadAllText('%(FullPath)').Replace('MAUI_VERSION_VALUE', '$(PackageReferenceVersion)'))" />
-
-
-
-
-
-
+ <_PackagesToCopy Include="$(PackageOutputPath)/$(PackageId).*.nupkg" />
+
\ No newline at end of file
diff --git a/src/Templates/src/templates/maui-blazor/MauiApp1/MauiApp1.csproj b/src/Templates/src/templates/maui-blazor/MauiApp1/MauiApp1.csproj
index ce4a1ccf7..c8722915b 100644
--- a/src/Templates/src/templates/maui-blazor/MauiApp1/MauiApp1.csproj
+++ b/src/Templates/src/templates/maui-blazor/MauiApp1/MauiApp1.csproj
@@ -4,6 +4,7 @@
net6.0-ios;net6.0-android;net6.0-maccatalyst
Exe
+ true
true
MauiApp1
@@ -36,12 +37,6 @@
-
-
-
-
-
-
true
iossimulator-x64
diff --git a/src/Templates/src/templates/maui-mobile/MauiApp1/MauiApp1.csproj b/src/Templates/src/templates/maui-mobile/MauiApp1/MauiApp1.csproj
index b09358697..2d7c70f70 100644
--- a/src/Templates/src/templates/maui-mobile/MauiApp1/MauiApp1.csproj
+++ b/src/Templates/src/templates/maui-mobile/MauiApp1/MauiApp1.csproj
@@ -4,6 +4,7 @@
net6.0-ios;net6.0-android;net6.0-maccatalyst
Exe
+ true
true
MauiApp1
@@ -36,10 +37,6 @@
-
-
-
-
true
iossimulator-x64
diff --git a/src/Workload/Microsoft.Maui.Controls.Ref/Microsoft.Maui.Controls.Ref.csproj b/src/Workload/Microsoft.Maui.Controls.Ref/Microsoft.Maui.Controls.Ref.csproj
new file mode 100644
index 000000000..3e499daa6
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Controls.Ref/Microsoft.Maui.Controls.Ref.csproj
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ $(DotNetPacksDirectory)$(PackageId)/$(PackageVersion)/
+
+
+
+
+ <_AndroidFiles Include="$(MauiRootDirectory)src/Compatibility/Core/src/Android.FormsViewGroup/bin/$(Configuration)/net6.0-android/ref/Microsoft.Maui.Controls.Compatibility.Android.FormsViewGroup.dll" />
+ <_AndroidFiles Include="$(MauiRootDirectory)src/Compatibility/Core/src/Android.FormsViewGroup/bin/$(Configuration)/net6.0-android/Microsoft.Maui.Controls.Compatibility.Android.FormsViewGroup.aar" />
+ <_AndroidFiles Include="$(MauiRootDirectory)src/Compatibility/Core/src/bin/$(Configuration)/net6.0-android/Microsoft.Maui.Controls.Compatibility.aar" />
+
+
+
+
+
+
+
+
+ <_PackageFiles Include="@(None)" PackagePath="ref/%(FullTfm)" TargetPath="ref/%(FullTfm)" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Controls.Runtime/Microsoft.Maui.Controls.Runtime.csproj b/src/Workload/Microsoft.Maui.Controls.Runtime/Microsoft.Maui.Controls.Runtime.csproj
new file mode 100644
index 000000000..ff6d62ff3
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Controls.Runtime/Microsoft.Maui.Controls.Runtime.csproj
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+ <_AndroidFiles Include="$(MauiRootDirectory)src/Compatibility/Core/src/Android.FormsViewGroup/bin/$(Configuration)/net6.0-android/Microsoft.Maui.Controls.Compatibility.Android.FormsViewGroup.dll" />
+
+
+
+
+
+
+
+
+ <_PackageFiles Include="@(None)" PackagePath="lib/%(FullTfm)" TargetPath="lib/%(FullTfm)" />
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Controls.Sdk/Microsoft.Maui.Controls.Sdk.csproj b/src/Workload/Microsoft.Maui.Controls.Sdk/Microsoft.Maui.Controls.Sdk.csproj
new file mode 100644
index 000000000..67d90f9d0
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Controls.Sdk/Microsoft.Maui.Controls.Sdk.csproj
@@ -0,0 +1,71 @@
+
+
+
+
+
+ $(DotNetPacksDirectory)$(PackageId)/$(PackageVersion)/
+
+
+
+
+
+
+
+
+
+
+
+ <_Files Include="$(MauiNuSpecDirectory)Microsoft.Maui.Controls.props" />
+ <_Files Include="$(MauiNuSpecDirectory)Microsoft.Maui.Controls.targets" />
+ <_Files Include="$(MauiNuSpecDirectory)Microsoft.Maui.Controls.DefaultItems.targets" />
+ <_Files Include="$(MauiNuSpecDirectory)Microsoft.Maui.Controls.SingleProject.targets" />
+ <_Files Include="$(PkgMicrosoft_Maui_Graphics)/lib/netstandard2.0/Microsoft.Maui.Graphics.dll" />
+ <_Files Include="$(PkgMono_Cecil)/lib/netstandard2.0/Mono.Cecil.dll" />
+ <_Files Include="$(PkgMono_Cecil)/lib/netstandard2.0/Mono.Cecil.Mdb.dll" />
+ <_Files Include="$(PkgMono_Cecil)/lib/netstandard2.0/Mono.Cecil.Pdb.dll" />
+ <_Files Include="$(PkgMono_Cecil)/lib/netstandard2.0/Mono.Cecil.Rocks.dll" />
+ <_Files Include="$(PkgSystem_CodeDom)/lib/netstandard2.0/System.CodeDom.dll" />
+ <_Files Include="$(MauiRootDirectory)src/Core/src/bin/$(Configuration)/netstandard2.0/Microsoft.Maui.dll" />
+ <_Files Include="$(MauiRootDirectory)src/Controls/src/Core/bin/$(Configuration)/netstandard2.0/Microsoft.Maui.Controls.dll" />
+ <_Files Include="$(MauiRootDirectory)src/Controls/src/Xaml/bin/$(Configuration)/netstandard2.0/Microsoft.Maui.Controls.Xaml.dll" />
+ <_Files Include="$(MauiRootDirectory)src/Controls/src/Build.Tasks/bin/$(Configuration)/netstandard2.0/Microsoft.Maui.Controls.Build.Tasks.dll" />
+ <_Files Include="$(MauiRootDirectory)src/Controls/src/SourceGen/bin/$(Configuration)/netstandard2.0/Microsoft.Maui.Controls.SourceGen.dll" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Controls.Sdk/Sdk/AutoImport.props b/src/Workload/Microsoft.Maui.Controls.Sdk/Sdk/AutoImport.props
new file mode 100644
index 000000000..68578e0e4
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Controls.Sdk/Sdk/AutoImport.props
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Controls.Sdk/Sdk/BundledVersions.in.targets b/src/Workload/Microsoft.Maui.Controls.Sdk/Sdk/BundledVersions.in.targets
new file mode 100644
index 000000000..f68f553fb
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Controls.Sdk/Sdk/BundledVersions.in.targets
@@ -0,0 +1,70 @@
+
+
+ @VERSION@
+
+
+
+
+ <_MauiRuntimeIdentifiers Include="android;ios;maccatalyst;windows" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Controls.Sdk/Sdk/Microsoft.Maui.Controls.Sdk.After.targets b/src/Workload/Microsoft.Maui.Controls.Sdk/Sdk/Microsoft.Maui.Controls.Sdk.After.targets
new file mode 100644
index 000000000..7d329019c
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Controls.Sdk/Sdk/Microsoft.Maui.Controls.Sdk.After.targets
@@ -0,0 +1,14 @@
+
+
+ $(EnableDefaultItems)
+ $(EnableDefaultMauiItems)
+ $(EnableDefaultMauiItems)
+ $(EnableDefaultMauiItems)
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Controls.Sdk/Sdk/Microsoft.Maui.Controls.Sdk.targets b/src/Workload/Microsoft.Maui.Controls.Sdk/Sdk/Microsoft.Maui.Controls.Sdk.targets
new file mode 100644
index 000000000..0c64aee92
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Controls.Sdk/Sdk/Microsoft.Maui.Controls.Sdk.targets
@@ -0,0 +1,18 @@
+
+
+
+ true
+
+
+
+
+
+
+
+ $(AfterMicrosoftNETSdkTargets);$(MSBuildThisFileDirectory)Microsoft.Maui.Controls.Sdk.After.targets
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Controls.Sdk/Sdk/Sdk.targets b/src/Workload/Microsoft.Maui.Controls.Sdk/Sdk/Sdk.targets
new file mode 100644
index 000000000..0237af431
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Controls.Sdk/Sdk/Sdk.targets
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Core.Ref/Microsoft.Maui.Core.Ref.csproj b/src/Workload/Microsoft.Maui.Core.Ref/Microsoft.Maui.Core.Ref.csproj
new file mode 100644
index 000000000..b473e264f
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Core.Ref/Microsoft.Maui.Core.Ref.csproj
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+ $(DotNetPacksDirectory)$(PackageId)/$(PackageVersion)/
+
+
+
+
+ <_AndroidFiles Include="$(MauiRootDirectory)src/Core/src/bin/$(Configuration)/net6.0-android/Microsoft.Maui.aar" />
+
+
+
+
+
+
+ <_PackageFiles Include="@(None)" PackagePath="ref/%(FullTfm)" TargetPath="ref/%(FullTfm)" />
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Core.Runtime/Microsoft.Maui.Core.Runtime.csproj b/src/Workload/Microsoft.Maui.Core.Runtime/Microsoft.Maui.Core.Runtime.csproj
new file mode 100644
index 000000000..ddad4aaad
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Core.Runtime/Microsoft.Maui.Core.Runtime.csproj
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+ <_PackageFiles Include="@(None)" PackagePath="lib/%(FullTfm)" TargetPath="lib/%(FullTfm)" />
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Dependencies/Microsoft.Maui.Dependencies.csproj b/src/Workload/Microsoft.Maui.Dependencies/Microsoft.Maui.Dependencies.csproj
new file mode 100644
index 000000000..9c713c479
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Dependencies/Microsoft.Maui.Dependencies.csproj
@@ -0,0 +1,36 @@
+
+
+
+ $(MSBuildProjectName)
+ $(MauiPlatforms)
+ false
+ false
+ false
+ $(NoWarn);NU5128
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Essentials.Ref/Microsoft.Maui.Essentials.Ref.csproj b/src/Workload/Microsoft.Maui.Essentials.Ref/Microsoft.Maui.Essentials.Ref.csproj
new file mode 100644
index 000000000..c1b1e31af
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Essentials.Ref/Microsoft.Maui.Essentials.Ref.csproj
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+ $(DotNetPacksDirectory)$(PackageId)/$(PackageVersion)/
+
+
+
+
+ <_AndroidFiles Include="$(MauiRootDirectory)src/Essentials/src/bin/$(Configuration)/net6.0-android/Microsoft.Maui.Essentials.aar" />
+
+
+
+
+
+
+ <_PackageFiles Include="@(None)" PackagePath="ref/%(FullTfm)" TargetPath="ref/%(FullTfm)" />
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Essentials.Runtime/Microsoft.Maui.Essentials.Runtime.csproj b/src/Workload/Microsoft.Maui.Essentials.Runtime/Microsoft.Maui.Essentials.Runtime.csproj
new file mode 100644
index 000000000..d083e87a9
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Essentials.Runtime/Microsoft.Maui.Essentials.Runtime.csproj
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+ <_PackageFiles Include="@(None)" PackagePath="lib/%(FullTfm)" TargetPath="lib/%(FullTfm)" />
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Extensions/Microsoft.Maui.Extensions.csproj b/src/Workload/Microsoft.Maui.Extensions/Microsoft.Maui.Extensions.csproj
new file mode 100644
index 000000000..ce10203ce
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Extensions/Microsoft.Maui.Extensions.csproj
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+ $(DotNetPacksDirectory)$(PackageId)/$(PackageVersion)/
+
+
+
+
+
+
+
+
+ <_ExtensionsFiles Include="$(PkgMicrosoft_Extensions_Configuration)/lib/netstandard2.0/Microsoft.Extensions.Configuration.dll" />
+ <_ExtensionsFiles Include="$(PkgMicrosoft_Extensions_DependencyInjection)/lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll" />
+ <_ExtensionsFiles Include="$(PkgMicrosoft_Extensions_Hosting_Abstractions)/lib/netstandard2.1/Microsoft.Extensions.Hosting.Abstractions.dll" />
+ <_ExtensionsFiles Include="$(PkgMicrosoft_Extensions_FileProviders_Embedded)/lib/netstandard2.0/Microsoft.Extensions.FileProviders.Embedded.dll" />
+ <_ExtensionsFiles Include="$(PkgMicrosoft_Extensions_Logging_Abstractions)/lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll" />
+
+
+ <_PackageFiles Include="@(None)" PackagePath="lib/net6.0" TargetPath="lib/net6.0" />
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Resizetizer.Sdk/Microsoft.Maui.Resizetizer.Sdk.csproj b/src/Workload/Microsoft.Maui.Resizetizer.Sdk/Microsoft.Maui.Resizetizer.Sdk.csproj
new file mode 100644
index 000000000..a75cd89e1
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Resizetizer.Sdk/Microsoft.Maui.Resizetizer.Sdk.csproj
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+ $(DotNetPacksDirectory)$(PackageId)/$(PackageVersion)/
+
+
+
+
+
+ <_Files Include="$(MauiNuSpecDirectory)Microsoft.Maui.Resizetizer.targets" />
+ <_Files Include="$(MauiRootDirectory)src\SingleProject\Resizetizer\src\bin\$(Configuration)\netstandard2.0\Microsoft.Maui.Resizetizer.dll" />
+ <_Files Include="$(PkgSystem_Memory)\lib\netstandard2.0\System.Memory.dll" />
+ <_Files Include="$(PkgSystem_Buffers)\lib\netstandard2.0\System.Buffers.dll" />
+ <_Files Include="$(PkgSystem_Numerics_Vectors)\lib\netstandard2.0\System.Numerics.Vectors.dll" />
+ <_Files Include="$(PkgSystem_Runtime_CompilerServices_Unsafe)\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll" />
+ <_Files Include="$(PkgSystem_ObjectModel)\lib\netstandard1.3\System.ObjectModel.dll" />
+ <_Files Include="$(PkgSvg_Custom)\lib\net461\Svg.Custom.dll" />
+ <_Files Include="$(PkgSvg_Picture)\lib\net461\Svg.Picture.dll" />
+ <_Files Include="$(PkgSvg_Skia)\lib\net461\Svg.Skia.dll" />
+ <_Files Include="$(PkgFizzler)\lib\netstandard2.0\Fizzler.dll" />
+ <_Files Include="$(PkgSystem_IO_UnmanagedMemoryStream)\lib\netstandard1.3\System.IO.UnmanagedMemoryStream.dll" />
+ <_Files Include="$(PkgSkiaSharp)\lib\net462\SkiaSharp.dll" />
+ <_Files Include="$(PkgSkiaSharp)\runtimes\osx\native\libSkiaSharp.dylib" />
+ <_Files Include="$(PkgSkiaSharp)\runtimes\win-x86\native\libSkiaSharp.dll" Arch="x86/" />
+ <_Files Include="$(PkgSkiaSharp)\runtimes\win-x64\native\libSkiaSharp.dll" Arch="x64/" />
+ <_Files Include="$(PkgSkiaSharp)\runtimes\win-arm64\native\libSkiaSharp.dll" Arch="arm64/" />
+ <_Files Include="$(PkgSkiaSharp_NativeAssets_Linux_NoDependencies)\runtimes\linux-arm\native\libSkiaSharp.so" Arch="arm/" />
+ <_Files Include="$(PkgSkiaSharp_NativeAssets_Linux_NoDependencies)\runtimes\linux-arm64\native\libSkiaSharp.so" Arch="arm64/" />
+ <_Files Include="$(PkgSkiaSharp_NativeAssets_Linux_NoDependencies)\runtimes\linux-musl-x64\native\libSkiaSharp.so" Arch="musl-x64/" />
+ <_Files Include="$(PkgSkiaSharp_NativeAssets_Linux_NoDependencies)\runtimes\linux-x64\native\libSkiaSharp.so" Arch="x64/" />
+ <_Files Include="$(PkgSkiaSharp_HarfBuzz)\lib\net462\SkiaSharp.HarfBuzz.dll" />
+ <_Files Include="$(PkgHarfBuzzSharp)\lib\net462\HarfBuzzSharp.dll" />
+ <_Files Include="$(PkgHarfBuzzSharp)\runtimes\osx\native\libHarfBuzzSharp.dylib" />
+ <_Files Include="$(PkgHarfBuzzSharp)\runtimes\win-x86\native\libHarfBuzzSharp.dll" Arch="x86/" />
+ <_Files Include="$(PkgHarfBuzzSharp)\runtimes\win-x64\native\libHarfBuzzSharp.dll" Arch="x64/" />
+ <_Files Include="$(PkgHarfBuzzSharp)\runtimes\win-arm64\native\libHarfBuzzSharp.dll" Arch="arm64/" />
+ <_Files Include="$(PkgHarfBuzzSharp_NativeAssets_Linux)\runtimes\linux-arm\native\libHarfBuzzSharp.so" Arch="arm/" />
+ <_Files Include="$(PkgHarfBuzzSharp_NativeAssets_Linux)\runtimes\linux-arm64\native\libHarfBuzzSharp.so" Arch="arm64/" />
+ <_Files Include="$(PkgHarfBuzzSharp_NativeAssets_Linux)\runtimes\linux-musl-x64\native\libHarfBuzzSharp.so" Arch="musl-x64/" />
+ <_Files Include="$(PkgHarfBuzzSharp_NativeAssets_Linux)\runtimes\linux-x64\native\libHarfBuzzSharp.so" Arch="x64/" />
+ <_Files Include="$(PkgSvg2VectorDrawable_Net)\lib\netstandard2.0\Svg2VectorDrawable.Net.dll" />
+ <_Files Include="$(PkgNewtonsoft_Json)\lib\netstandard2.0\Newtonsoft.Json.dll" />
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Resizetizer.Sdk/Sdk/AutoImport.props b/src/Workload/Microsoft.Maui.Resizetizer.Sdk/Sdk/AutoImport.props
new file mode 100644
index 000000000..423091616
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Resizetizer.Sdk/Sdk/AutoImport.props
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.Maui.Resizetizer.Sdk/Sdk/Sdk.targets b/src/Workload/Microsoft.Maui.Resizetizer.Sdk/Sdk/Sdk.targets
new file mode 100644
index 000000000..692273f08
--- /dev/null
+++ b/src/Workload/Microsoft.Maui.Resizetizer.Sdk/Sdk/Sdk.targets
@@ -0,0 +1,5 @@
+
+
+ $(AfterMicrosoftNETSdkTargets);$(MSBuildThisFileDirectory)../targets/Microsoft.Maui.Resizetizer.targets
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.NET.Sdk.Maui/Microsoft.NET.Sdk.Maui.csproj b/src/Workload/Microsoft.NET.Sdk.Maui/Microsoft.NET.Sdk.Maui.csproj
new file mode 100644
index 000000000..d05e3aad8
--- /dev/null
+++ b/src/Workload/Microsoft.NET.Sdk.Maui/Microsoft.NET.Sdk.Maui.csproj
@@ -0,0 +1,37 @@
+
+
+
+
+
+ $(PackageId).Manifest-$(DotNetPreviewVersionBand)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_Files Include="$(OutputPath)WorkloadManifest.*" />
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Microsoft.NET.Sdk.Maui/WorkloadManifest.in.json b/src/Workload/Microsoft.NET.Sdk.Maui/WorkloadManifest.in.json
new file mode 100644
index 000000000..60b2833d5
--- /dev/null
+++ b/src/Workload/Microsoft.NET.Sdk.Maui/WorkloadManifest.in.json
@@ -0,0 +1,216 @@
+{
+ "version": "@VERSION@",
+ "workloads": {
+ "maui": {
+ "description": ".NET MAUI SDK for all platforms",
+ "extends": [
+ "maui-mobile",
+ "maui-desktop"
+ ]
+ },
+ "maui-mobile": {
+ "description": ".NET MAUI SDK for Mobile",
+ "extends": [
+ "maui-android",
+ "maui-ios"
+ ]
+ },
+ "maui-desktop": {
+ "description": ".NET MAUI SDK for Desktop",
+ "extends": [
+ "maui-maccatalyst",
+ "maui-windows"
+ ]
+ },
+ "maui-core": {
+ "description": ".NET MAUI SDK Core Packages",
+ "packs": [
+ "Microsoft.AspNetCore.Components.WebView.Maui",
+ "Microsoft.Maui.Dependencies",
+ "Microsoft.Maui.Controls.Sdk",
+ "Microsoft.Maui.Extensions",
+ "Microsoft.Maui.Resizetizer.Sdk",
+ "Microsoft.Maui.Templates"
+ ]
+ },
+ "maui-android": {
+ "description": ".NET MAUI SDK for Android",
+ "extends": [
+ "maui-core",
+ "microsoft-android-sdk-full"
+ ],
+ "packs": [
+ "Microsoft.Maui.Core.Ref.android",
+ "Microsoft.Maui.Core.Runtime.android",
+ "Microsoft.Maui.Controls.Ref.android",
+ "Microsoft.Maui.Controls.Runtime.android",
+ "Microsoft.Maui.Essentials.Ref.android",
+ "Microsoft.Maui.Essentials.Runtime.android"
+ ]
+ },
+ "maui-maccatalyst": {
+ "description": ".NET MAUI SDK for Mac Catalyst",
+ "extends": [
+ "maui-core",
+ "microsoft-maccatalyst-sdk-full"
+ ],
+ "packs": [
+ "Microsoft.Maui.Core.Ref.maccatalyst",
+ "Microsoft.Maui.Core.Runtime.maccatalyst",
+ "Microsoft.Maui.Controls.Ref.maccatalyst",
+ "Microsoft.Maui.Controls.Runtime.maccatalyst",
+ "Microsoft.Maui.Essentials.Ref.maccatalyst",
+ "Microsoft.Maui.Essentials.Runtime.maccatalyst"
+ ]
+ },
+ "maui-ios": {
+ "description": ".NET MAUI SDK for iOS",
+ "extends": [
+ "maui-core",
+ "microsoft-ios-sdk-full"
+ ],
+ "packs": [
+ "Microsoft.Maui.Core.Ref.ios",
+ "Microsoft.Maui.Core.Runtime.ios",
+ "Microsoft.Maui.Controls.Ref.ios",
+ "Microsoft.Maui.Controls.Runtime.ios",
+ "Microsoft.Maui.Essentials.Ref.ios",
+ "Microsoft.Maui.Essentials.Runtime.ios"
+ ]
+ },
+ "maui-windows": {
+ "description": ".NET MAUI SDK for Windows",
+ "extends": [ "maui-core" ],
+ "packs": [
+ "Microsoft.Maui.Core.Ref.windows",
+ "Microsoft.Maui.Core.Runtime.windows",
+ "Microsoft.Maui.Controls.Ref.windows",
+ "Microsoft.Maui.Controls.Runtime.windows",
+ "Microsoft.Maui.Essentials.Ref.windows",
+ "Microsoft.Maui.Essentials.Runtime.windows"
+ ]
+ }
+ },
+ "packs": {
+ "Microsoft.AspNetCore.Components.WebView.Maui": {
+ "kind": "library",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Core.Ref.android": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Core.Ref.maccatalyst": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Core.Ref.ios": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Core.Ref.windows": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Core.Runtime.android": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Core.Runtime.maccatalyst": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Core.Runtime.ios": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Core.Runtime.windows": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Controls.Ref.android": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Controls.Ref.maccatalyst": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Controls.Ref.ios": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Controls.Ref.windows": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Controls.Runtime.android": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Controls.Runtime.maccatalyst": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Controls.Runtime.ios": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Controls.Runtime.windows": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Dependencies": {
+ "kind": "library",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Essentials.Ref.android": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Essentials.Ref.maccatalyst": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Essentials.Ref.ios": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Essentials.Ref.windows": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Essentials.Runtime.android": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Essentials.Runtime.maccatalyst": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Essentials.Runtime.ios": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Essentials.Runtime.windows": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Extensions": {
+ "kind": "framework",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Controls.Sdk": {
+ "kind": "sdk",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Resizetizer.Sdk": {
+ "kind": "sdk",
+ "version": "@VERSION@"
+ },
+ "Microsoft.Maui.Templates": {
+ "kind": "template",
+ "version": "@VERSION@"
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Workload/Microsoft.NET.Sdk.Maui/WorkloadManifest.targets b/src/Workload/Microsoft.NET.Sdk.Maui/WorkloadManifest.targets
new file mode 100644
index 000000000..e3005df0e
--- /dev/null
+++ b/src/Workload/Microsoft.NET.Sdk.Maui/WorkloadManifest.targets
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/README.md b/src/Workload/README.md
new file mode 100644
index 000000000..1709cb636
--- /dev/null
+++ b/src/Workload/README.md
@@ -0,0 +1,204 @@
+# .NET MAUI Workloads
+
+.NET Workloads are a new concept in .NET 6.
+
+The idea, is a project to be able to set `$(UseMaui)`:
+
+```xml
+
+
+ net6.0-android;net6.0-ios
+ Exe
+ true
+
+
+```
+
+`$(UseMaui)` automatically brings in the following workload packs:
+
+* `Microsoft.NET.Sdk.Maui`
+* `Microsoft.Maui.Controls.Sdk`
+* `Microsoft.Maui.Resizetizer.Sdk`
+* `Microsoft.Maui.Core.Ref.[platform]`
+* `Microsoft.Maui.Core.Runtime.[platform]`
+* `Microsoft.Maui.Controls.Ref.[platform]`
+* `Microsoft.Maui.Controls.Runtime.[platform]`
+* `Microsoft.Maui.Dependencies`
+* `Microsoft.Maui.Essentials.Ref.[platform]`
+* `Microsoft.Maui.Essentials.Runtime.[platform]`
+* `Microsoft.Maui.Extensions`
+* `Microsoft.Maui.Templates`
+
+BlazorWebView is an addition to MAUI, project can currently opt into
+it by adding `.Razor` to the `Sdk` attribute.
+
+`` sets
+`$(UsingMicrosoftNETSdkRazor)`, which triggers the MAUI workload to
+include:
+
+* `Microsoft.AspNetCore.Components.WebView.Maui`
+
+This will automatically add these dependencies:
+
+```xml
+
+
+
+
+```
+
+If you are a .NET 6 project, but don't want to use
+Microsoft.Maui.Controls you could bring in partial parts of MAUI.
+
+`$(UseMauiAssets)` brings in `Microsoft.Maui.Resizetizer.Sdk`.
+
+`$(UseMauiCore)` brings in:
+
+* `Microsoft.Maui.Core.Ref.[platform]`
+* `Microsoft.Maui.Core.Runtime.[platform]`
+
+`$(UseMauiEssentials)` brings in:
+
+* `Microsoft.Maui.Essentials.Ref.[platform]`
+* `Microsoft.Maui.Essentials.Runtime.[platform]`
+
+Special files:
+
+* `AutoImport.props` - defines the default includes (or wildcards) for
+ Maui projects will go. Note that this is imported by *all* .NET 6
+ project types -- *even non-mobile ones*.
+* `WorkloadManifest.json` - general .NET workload configuration
+* `WorkloadManifest.targets` - imports `Microsoft.Maui.Controls.Sdk` when
+ `$(UseMaui)` is `true`. Note that this is imported by *all* .NET 6
+ project types -- *even non-mobile ones*.
+
+For further details about .NET Workloads, see these .NET design docs:
+
+* [.NET Optional SDK Workloads](https://github.com/dotnet/designs/blob/main/accepted/2020/workloads/workloads.md)
+* [Workload Resolvers](https://github.com/dotnet/designs/blob/main/accepted/2020/workloads/workload-resolvers.md)
+* [Workload Manifests](https://github.com/mhutch/designs/blob/b82449a228c0addb95b5a4995bb838749ea6f8cc/accepted/2020/workloads/workload-manifest.md)
+
+## .NET MAUI Workload Ids
+
+A .NET "workload" is a collection of packs.
+
+.NET MAUI will have several workload ids depending on what needs to be
+installed:
+
+* `maui`: everything
+* `maui-mobile`: iOS & Android
+* `maui-desktop`: Mac Catalyst & Windows
+* `maui-core`: required by all platforms
+* `maui-android`
+* `maui-maccatalyst`
+* `maui-macos`
+* `maui-windows`
+
+Eventually, Android will have a `microsoft-android-sdk-minimal`
+workload id that excludes AOT compilers. We'll need to modify some of
+the MAUI workload ids when this is available.
+
+These ids will not map exactly to the Visual Studio Installer's
+concept of a "workload". Consider the following diagram for what .NET
+developers would get from the choices of `mobile`, `maui`, or
+`desktop`:
+
+![Workload Diagram](docs/workload-diagram.png)
+
+## Using the .NET MAUI Workload
+
+After you've done a build, such as:
+
+```dotnetcli
+$ dotnet cake
+```
+
+You'll have various `artifacts/*.nupkg` files produced, as well as the
+proper files copied to `./bin/dotnet`.
+
+At this point, you can build the samples using `-p:UseWorkload=true`.
+This uses the workload instead of the `` that are
+declared:
+
+```dotnetcli
+$ git clean -dxf src/Controls/samples/
+$ ./bin/dotnet/dotnet build Microsoft.Maui.Samples-net6.slnf -p:UseWorkload=true
+```
+
+### Install System-Wide
+
+Once you have `artifacts/*.nupkg` locally, you can install them in a
+system-wide dotnet install in `/usr/local/share/dotnet/` or
+`C:\Program Files\dotnet\`.
+
+On macOS, you could do:
+
+```dotnetcli
+$ sudo dotnet build src/DotNet/DotNet.csproj -t:Install
+```
+
+On Windows, you would use an Administrator command prompt:
+
+```dotnetcli
+> dotnet build src/DotNet/DotNet.csproj -t:Install
+```
+
+`DotNet.csproj` will install the workload in the instance of `dotnet`
+that you run it under.
+
+### CI for dotnet/maui
+
+On CI in order to test the workload, we download the `.nupkg` files to
+`artifacts` and provision a .NET 6 without mobile workload packs via
+`-p:InstallWorkloadPacks=false`:
+
+```dotnetcli
+$ dotnet build src/DotNet/DotNet.csproj -p:InstallWorkloadPacks=false
+```
+
+Next, we can use the new `Install` target to extract from `artifacts/*.nupkg`:
+
+```dotnetcli
+$ ./bin/dotnet/dotnet build src/DotNet/DotNet.csproj -t:Install
+```
+
+Then we can build samples with `-p:UseWorkload=true`:
+
+```dotnetcli
+$ ./bin/dotnet/dotnet build Microsoft.Maui.Samples-net6.slnf -p:UseWorkload=true
+```
+
+## Cleanup .NET 6 installs & workloads
+
+Sometimes your .NET 6 install might get "hosed", so these are some
+quick instructions on how to uninstall .NET 6 and all workloads to
+start fresh.
+
+By default .NET 6 is installed in:
+
+* Windows: `C:\Program Files\dotnet\`
+* macOS: `/usr/local/share/dotnet/`
+
+On Windows, start by going to `Control Panel` > `Programs and
+Features` and uninstall .NET 6. Files will still be left behind after
+doing this. macOS doesn't really have a way to uninstall `.pkg` files,
+so we'll just be deleting files manually.
+
+Manually remove these directories:
+
+* `dotnet/library-packs`
+* `dotnet/metadata`
+* `dotnet/packs/Microsoft.Android.*`
+* `dotnet/packs/Microsoft.iOS.*`
+* `dotnet/packs/Microsoft.MacCatalyst.*`
+* `dotnet/packs/Microsoft.macOS.*`
+* `dotnet/packs/Microsoft.Maui.*`
+* `dotnet/packs/Microsoft.tvOS.*`
+* `dotnet/sdk/6.0.100-*`
+* `dotnet/sdk-manifests`
+* `dotnet/template-packs`
+
+These folders are all .NET 6 specific, so they won't affect .NET 5 or
+older versions.
+
+After this you can install .NET 6 with a fresh install of your choice.
diff --git a/src/Workload/Shared/Common.targets b/src/Workload/Shared/Common.targets
new file mode 100644
index 000000000..6cf9bab29
--- /dev/null
+++ b/src/Workload/Shared/Common.targets
@@ -0,0 +1,12 @@
+
+
+ netstandard2.0
+ DotnetPlatform
+ $(MSBuildProjectName)
+ true
+ false
+ false
+ false
+ $(NoWarn);NU5100;NU5128;NU5130;NU5131
+
+
\ No newline at end of file
diff --git a/src/Workload/Shared/FrameworkList.targets b/src/Workload/Shared/FrameworkList.targets
new file mode 100644
index 000000000..2598ea308
--- /dev/null
+++ b/src/Workload/Shared/FrameworkList.targets
@@ -0,0 +1,45 @@
+
+
+
+ <_FrameworkListFile Condition=" !$(MSBuildProjectName.Contains('.Runtime')) " Include="$(IntermediateOutputPath)FrameworkList.xml" />
+ <_FrameworkListFile Condition=" !$(MSBuildProjectName.Contains('.Ref')) " Include="$(IntermediateOutputPath)RuntimeList.xml" />
+
+
+
+
+
+
+
+
+
+
+ <_RootAttribute Include="Name" Value=".NET MAUI" />
+ <_RootAttribute Include="TargetFrameworkIdentifier" Value=".NETCoreApp" />
+ <_RootAttribute Include="TargetFrameworkVersion" Value="6.0" />
+ <_RootAttribute Include="FrameworkName" Value="$(MSBuildProjectName.Replace('.Ref','').Replace('.Runtime',''))" />
+ <_AssemblyFiles Include="@(_PackageFiles->WithMetadataValue('Extension', '.dll'))" />
+ <_Classifications Include="@(_AssemblyFiles->'%(FileName)%(Extension)'->Distinct())" Profile="@(_TargetPlatform->'%(Profile)')" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Workload/Shared/Frameworks.targets b/src/Workload/Shared/Frameworks.targets
new file mode 100644
index 000000000..64b6234ff
--- /dev/null
+++ b/src/Workload/Shared/Frameworks.targets
@@ -0,0 +1,53 @@
+
+
+
+
+ $(PackageId).$(MauiPlatformName)
+
+
+ false
+
+
+
+ <_TargetPlatform
+ Condition=" '$(MauiPlatformName)' == 'android' "
+ Include="net6.0-android30.0"
+ FullTfm="%(Identity)"
+ Tfm="net6.0-android"
+ Profile="Android"
+ />
+ <_TargetPlatform
+ Condition=" '$(MauiPlatformName)' == 'ios' "
+ Include="net6.0-ios13.6"
+ FullTfm="%(Identity)"
+ Tfm="net6.0-ios"
+ Profile="iOS"
+ />
+ <_TargetPlatform
+ Condition=" '$(MauiPlatformName)' == 'maccatalyst' "
+ Include="net6.0-maccatalyst13.5"
+ FullTfm="%(Identity)"
+ Tfm="net6.0-maccatalyst"
+ Profile="MacCatalyst"
+ />
+ <_TargetPlatform
+ Condition=" '$(MauiPlatformName)' == 'windows' "
+ Include="$(WindowsTargetFramework)"
+ FullTfm="%(Identity)"
+ Tfm="$(WindowsTargetFramework)"
+ Profile="Windows"
+ />
+
+
+
+
+
+ <_Platforms Include="android;maccatalyst;ios" />
+ <_Platforms Include="windows" Condition=" '$(BuildForWinUI)' == 'true' or '$(Packing)' == 'true' " />
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Shared/LibraryPacks.targets b/src/Workload/Shared/LibraryPacks.targets
new file mode 100644
index 000000000..c10e8ba21
--- /dev/null
+++ b/src/Workload/Shared/LibraryPacks.targets
@@ -0,0 +1,14 @@
+
+
+
+
+ <_PackagesToCopy Include="$(PackageOutputPath)/$(PackageId).*.nupkg" />
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Workload/Shared/WinUI.targets b/src/Workload/Shared/WinUI.targets
new file mode 100644
index 000000000..d99b27f40
--- /dev/null
+++ b/src/Workload/Shared/WinUI.targets
@@ -0,0 +1,7 @@
+
+
+
+ UAP
+
+
+
\ No newline at end of file
diff --git a/src/Workload/docs/workload-diagram.png b/src/Workload/docs/workload-diagram.png
new file mode 100644
index 000000000..89afd34c9
Binary files /dev/null and b/src/Workload/docs/workload-diagram.png differ