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"> + $(MSBuildThisFileDirectory) + $(MSBuildThisFileDirectory).nuspec/ $(MSBuildThisFileDirectory)bin/ $(DotNetOutputPath)temp/ $(DotNetOutputPath)dotnet/ $(DotNetDirectory)dotnet $(DotNetDirectory)packs/ + $(DotNetDirectory)library-packs/ $(DotNetDirectory)sdk-manifests/$(DotNetPreviewVersionBand)/ + $(DotNetDirectory)template-packs/ <_MauiBuildTasksLocation>$(_MauiBuildTasksLocation) <_MauiBuildTasksLocation Condition="'$(_MauiBuildTasksLocation)' == ''">$(MSBuildThisFileDirectory).nuspec\ true diff --git a/Microsoft.Maui-net6.sln b/Microsoft.Maui-net6.sln index 7ca223b69..de7cadf3f 100644 --- a/Microsoft.Maui-net6.sln +++ b/Microsoft.Maui-net6.sln @@ -44,8 +44,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SingleProject", "SingleProj EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Resizetizer", "src\SingleProject\Resizetizer\src\Resizetizer.csproj", "{9909F93F-C085-4F76-B92A-5D8C516BF47D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Package-net6", "src\Package\Package-net6.csproj", "{5BEB3326-79B4-438C-BF65-274202F387EC}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Xaml-net6", "src\Controls\src\Xaml\Controls.Xaml-net6.csproj", "{CC3D4667-D94E-4276-9311-6439BFD075E4}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Maui.Templates", "src\Templates\src\Microsoft.Maui.Templates.csproj", "{DAAC2822-63B6-4DE0-83AE-04873CD2F364}" @@ -92,6 +90,30 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Compon EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebViewAppShared", "src\BlazorWebView\samples\WebViewAppShared\WebViewAppShared.csproj", "{9F1E0CE0-BF56-433F-8238-6C2B880EEF18}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Workload", "Workload", "{EC63FD88-5E12-46D7-B440-68F70241D987}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Maui.Controls.Ref", "src\Workload\Microsoft.Maui.Controls.Ref\Microsoft.Maui.Controls.Ref.csproj", "{91B7E807-1026-4238-A7C2-D7A02C66F141}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Maui.Controls.Runtime", "src\Workload\Microsoft.Maui.Controls.Runtime\Microsoft.Maui.Controls.Runtime.csproj", "{9D8171BD-0F66-4D97-9A38-46800FC6B710}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Maui.Controls.Sdk", "src\Workload\Microsoft.Maui.Controls.Sdk\Microsoft.Maui.Controls.Sdk.csproj", "{C5C434A7-4E1F-456F-A23A-F2566C98301A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Maui.Core.Ref", "src\Workload\Microsoft.Maui.Core.Ref\Microsoft.Maui.Core.Ref.csproj", "{359FFDAC-3E3C-4A78-98EE-9070841E5792}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Maui.Core.Runtime", "src\Workload\Microsoft.Maui.Core.Runtime\Microsoft.Maui.Core.Runtime.csproj", "{73075C7E-AA0A-4FD6-BBD7-6BD3B43BC2A9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Maui.Dependencies", "src\Workload\Microsoft.Maui.Dependencies\Microsoft.Maui.Dependencies.csproj", "{582BA9EC-420C-4512-8892-37E8F6D1E70F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Maui.Essentials.Ref", "src\Workload\Microsoft.Maui.Essentials.Ref\Microsoft.Maui.Essentials.Ref.csproj", "{28B1E6A8-4EB7-4B82-9552-10C418692496}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Maui.Essentials.Runtime", "src\Workload\Microsoft.Maui.Essentials.Runtime\Microsoft.Maui.Essentials.Runtime.csproj", "{C69336DF-EE56-4236-8188-06B2A8AD8A36}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Maui.Resizetizer.Sdk", "src\Workload\Microsoft.Maui.Resizetizer.Sdk\Microsoft.Maui.Resizetizer.Sdk.csproj", "{02414DF4-FBE9-400B-8F3F-40DDC7F8FEFC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.NET.Sdk.Maui", "src\Workload\Microsoft.NET.Sdk.Maui\Microsoft.NET.Sdk.Maui.csproj", "{081EE5E5-69D4-493C-9EB4-47423C4728AB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Maui.Extensions", "src\Workload\Microsoft.Maui.Extensions\Microsoft.Maui.Extensions.csproj", "{6EDE0C1B-B718-4331-99BA-423042CDBE24}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -149,10 +171,6 @@ Global {9909F93F-C085-4F76-B92A-5D8C516BF47D}.Debug|Any CPU.Build.0 = Debug|Any CPU {9909F93F-C085-4F76-B92A-5D8C516BF47D}.Release|Any CPU.ActiveCfg = Release|Any CPU {9909F93F-C085-4F76-B92A-5D8C516BF47D}.Release|Any CPU.Build.0 = Release|Any CPU - {5BEB3326-79B4-438C-BF65-274202F387EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5BEB3326-79B4-438C-BF65-274202F387EC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5BEB3326-79B4-438C-BF65-274202F387EC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5BEB3326-79B4-438C-BF65-274202F387EC}.Release|Any CPU.Build.0 = Release|Any CPU {CC3D4667-D94E-4276-9311-6439BFD075E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CC3D4667-D94E-4276-9311-6439BFD075E4}.Debug|Any CPU.Build.0 = Debug|Any CPU {CC3D4667-D94E-4276-9311-6439BFD075E4}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -211,6 +229,50 @@ Global {9F1E0CE0-BF56-433F-8238-6C2B880EEF18}.Debug|Any CPU.Build.0 = Debug|Any CPU {9F1E0CE0-BF56-433F-8238-6C2B880EEF18}.Release|Any CPU.ActiveCfg = Release|Any CPU {9F1E0CE0-BF56-433F-8238-6C2B880EEF18}.Release|Any CPU.Build.0 = Release|Any CPU + {91B7E807-1026-4238-A7C2-D7A02C66F141}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91B7E807-1026-4238-A7C2-D7A02C66F141}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91B7E807-1026-4238-A7C2-D7A02C66F141}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91B7E807-1026-4238-A7C2-D7A02C66F141}.Release|Any CPU.Build.0 = Release|Any CPU + {9D8171BD-0F66-4D97-9A38-46800FC6B710}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9D8171BD-0F66-4D97-9A38-46800FC6B710}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9D8171BD-0F66-4D97-9A38-46800FC6B710}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9D8171BD-0F66-4D97-9A38-46800FC6B710}.Release|Any CPU.Build.0 = Release|Any CPU + {C5C434A7-4E1F-456F-A23A-F2566C98301A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C5C434A7-4E1F-456F-A23A-F2566C98301A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C5C434A7-4E1F-456F-A23A-F2566C98301A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C5C434A7-4E1F-456F-A23A-F2566C98301A}.Release|Any CPU.Build.0 = Release|Any CPU + {359FFDAC-3E3C-4A78-98EE-9070841E5792}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {359FFDAC-3E3C-4A78-98EE-9070841E5792}.Debug|Any CPU.Build.0 = Debug|Any CPU + {359FFDAC-3E3C-4A78-98EE-9070841E5792}.Release|Any CPU.ActiveCfg = Release|Any CPU + {359FFDAC-3E3C-4A78-98EE-9070841E5792}.Release|Any CPU.Build.0 = Release|Any CPU + {73075C7E-AA0A-4FD6-BBD7-6BD3B43BC2A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {73075C7E-AA0A-4FD6-BBD7-6BD3B43BC2A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {73075C7E-AA0A-4FD6-BBD7-6BD3B43BC2A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {73075C7E-AA0A-4FD6-BBD7-6BD3B43BC2A9}.Release|Any CPU.Build.0 = Release|Any CPU + {582BA9EC-420C-4512-8892-37E8F6D1E70F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {582BA9EC-420C-4512-8892-37E8F6D1E70F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {582BA9EC-420C-4512-8892-37E8F6D1E70F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {582BA9EC-420C-4512-8892-37E8F6D1E70F}.Release|Any CPU.Build.0 = Release|Any CPU + {28B1E6A8-4EB7-4B82-9552-10C418692496}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28B1E6A8-4EB7-4B82-9552-10C418692496}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28B1E6A8-4EB7-4B82-9552-10C418692496}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28B1E6A8-4EB7-4B82-9552-10C418692496}.Release|Any CPU.Build.0 = Release|Any CPU + {C69336DF-EE56-4236-8188-06B2A8AD8A36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C69336DF-EE56-4236-8188-06B2A8AD8A36}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C69336DF-EE56-4236-8188-06B2A8AD8A36}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C69336DF-EE56-4236-8188-06B2A8AD8A36}.Release|Any CPU.Build.0 = Release|Any CPU + {02414DF4-FBE9-400B-8F3F-40DDC7F8FEFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {02414DF4-FBE9-400B-8F3F-40DDC7F8FEFC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {02414DF4-FBE9-400B-8F3F-40DDC7F8FEFC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {02414DF4-FBE9-400B-8F3F-40DDC7F8FEFC}.Release|Any CPU.Build.0 = Release|Any CPU + {081EE5E5-69D4-493C-9EB4-47423C4728AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {081EE5E5-69D4-493C-9EB4-47423C4728AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {081EE5E5-69D4-493C-9EB4-47423C4728AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {081EE5E5-69D4-493C-9EB4-47423C4728AB}.Release|Any CPU.Build.0 = Release|Any CPU + {6EDE0C1B-B718-4331-99BA-423042CDBE24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6EDE0C1B-B718-4331-99BA-423042CDBE24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6EDE0C1B-B718-4331-99BA-423042CDBE24}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6EDE0C1B-B718-4331-99BA-423042CDBE24}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -249,6 +311,17 @@ Global {A8E9400E-70DD-421F-8609-1C2FA4AE8E71} = {1614D1A4-5C3D-4D5B-8C89-426E37A564EF} {5256004D-AA93-4C44-A59E-026E12756BD1} = {1614D1A4-5C3D-4D5B-8C89-426E37A564EF} {9F1E0CE0-BF56-433F-8238-6C2B880EEF18} = {A8E9400E-70DD-421F-8609-1C2FA4AE8E71} + {91B7E807-1026-4238-A7C2-D7A02C66F141} = {EC63FD88-5E12-46D7-B440-68F70241D987} + {9D8171BD-0F66-4D97-9A38-46800FC6B710} = {EC63FD88-5E12-46D7-B440-68F70241D987} + {C5C434A7-4E1F-456F-A23A-F2566C98301A} = {EC63FD88-5E12-46D7-B440-68F70241D987} + {359FFDAC-3E3C-4A78-98EE-9070841E5792} = {EC63FD88-5E12-46D7-B440-68F70241D987} + {73075C7E-AA0A-4FD6-BBD7-6BD3B43BC2A9} = {EC63FD88-5E12-46D7-B440-68F70241D987} + {582BA9EC-420C-4512-8892-37E8F6D1E70F} = {EC63FD88-5E12-46D7-B440-68F70241D987} + {28B1E6A8-4EB7-4B82-9552-10C418692496} = {EC63FD88-5E12-46D7-B440-68F70241D987} + {C69336DF-EE56-4236-8188-06B2A8AD8A36} = {EC63FD88-5E12-46D7-B440-68F70241D987} + {02414DF4-FBE9-400B-8F3F-40DDC7F8FEFC} = {EC63FD88-5E12-46D7-B440-68F70241D987} + {081EE5E5-69D4-493C-9EB4-47423C4728AB} = {EC63FD88-5E12-46D7-B440-68F70241D987} + {6EDE0C1B-B718-4331-99BA-423042CDBE24} = {EC63FD88-5E12-46D7-B440-68F70241D987} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {0B8ABEAD-D2B5-4370-A187-62B5ABE4EE50} diff --git a/Microsoft.Maui.Droid.sln b/Microsoft.Maui.Droid.sln index 74e11d224..22666bec0 100644 --- a/Microsoft.Maui.Droid.sln +++ b/Microsoft.Maui.Droid.sln @@ -38,8 +38,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SingleProject", "SingleProj EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Resizetizer", "src\SingleProject\Resizetizer\src\Resizetizer.csproj", "{9909F93F-C085-4F76-B92A-5D8C516BF47D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Package-net6", "src\Package\Package-net6.csproj", "{5BEB3326-79B4-438C-BF65-274202F387EC}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Xaml-net6", "src\Controls\src\Xaml\Controls.Xaml-net6.csproj", "{CC3D4667-D94E-4276-9311-6439BFD075E4}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Maui.Templates", "src\Templates\src\Microsoft.Maui.Templates.csproj", "{DAAC2822-63B6-4DE0-83AE-04873CD2F364}" @@ -109,10 +107,6 @@ Global {9909F93F-C085-4F76-B92A-5D8C516BF47D}.Debug|Any CPU.Build.0 = Debug|Any CPU {9909F93F-C085-4F76-B92A-5D8C516BF47D}.Release|Any CPU.ActiveCfg = Release|Any CPU {9909F93F-C085-4F76-B92A-5D8C516BF47D}.Release|Any CPU.Build.0 = Release|Any CPU - {5BEB3326-79B4-438C-BF65-274202F387EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5BEB3326-79B4-438C-BF65-274202F387EC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5BEB3326-79B4-438C-BF65-274202F387EC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5BEB3326-79B4-438C-BF65-274202F387EC}.Release|Any CPU.Build.0 = Release|Any CPU {CC3D4667-D94E-4276-9311-6439BFD075E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CC3D4667-D94E-4276-9311-6439BFD075E4}.Debug|Any CPU.Build.0 = Debug|Any CPU {CC3D4667-D94E-4276-9311-6439BFD075E4}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/Microsoft.Maui.Samples-net6.slnf b/Microsoft.Maui.Samples-net6.slnf new file mode 100644 index 000000000..95a87b614 --- /dev/null +++ b/Microsoft.Maui.Samples-net6.slnf @@ -0,0 +1,12 @@ +{ + "solution": { + "path": "Microsoft.Maui-net6.sln", + "projects": [ + "src\\Controls\\samples\\Controls.Sample.Droid\\Maui.Controls.Sample.Droid-net6.csproj", + "src\\Controls\\samples\\Controls.Sample.MacCatalyst\\Maui.Controls.Sample.MacCatalyst-net6.csproj", + "src\\Controls\\samples\\Controls.Sample.SingleProject\\Maui.Controls.Sample.SingleProject.csproj", + "src\\Controls\\samples\\Controls.Sample.iOS\\Maui.Controls.Sample.iOS-net6.csproj", + "src\\Controls\\samples\\Controls.Sample\\Maui.Controls.Sample-net6.csproj" + ] + } +} \ No newline at end of file diff --git a/eng/Microsoft.Extensions.targets b/eng/Microsoft.Extensions.targets index 5071323dd..d02352973 100644 --- a/eng/Microsoft.Extensions.targets +++ b/eng/Microsoft.Extensions.targets @@ -1,11 +1,14 @@ - + + <_UseNet6Packages Condition=" '$(TargetFramework.Contains(net6.0))' == 'true' or '$(PackageType)' == 'DotnetPlatform' ">true + + <_MicrosoftHostingVersion>6.0.0-preview.5.21301.5 <_MicrosoftDependencyInjectionVersion>$(_MicrosoftHostingVersion) <_MicrosoftFileProvidersVersion>6.0.0-preview.5.21301.5 <_MicrosoftSystemCodeDomVersion>6.0.0-preview.5.21301.5 - + <_MicrosoftHostingVersion>5.0.0 <_MicrosoftDependencyInjectionVersion>5.0.1 <_MicrosoftFileProvidersVersion>5.0.6 @@ -25,6 +28,10 @@ $(MtouchExtraArgs) --setenv:MONO_THREADS_SUSPEND=preemptive + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/eng/pipelines/handlers.yml b/eng/pipelines/handlers.yml index 2e9bd8209..be486c4f7 100644 --- a/eng/pipelines/handlers.yml +++ b/eng/pipelines/handlers.yml @@ -256,13 +256,11 @@ stages: - script: dotnet cake --configuration=Release displayName: pack nugets - task: CopyFiles@2 - displayName: 'Copy SignList.xml Files' + condition: always() + displayName: 'Copy files to staging' inputs: Contents: | - **/Microsoft.Maui.*.nupkg - **/Microsoft.Maui.*.snupkg - **/Microsoft.AspNetCore.Components.WebView.*.nupkg - **/Microsoft.AspNetCore.Components.WebView.*.snupkg + artifacts/*nupkg **/SignList.xml TargetFolder: $(build.artifactstagingdirectory) flattenFolders: true @@ -281,15 +279,15 @@ stages: ArtifactName: ${{ BuildPlatform.artifact }} - stage: build_net6 - displayName: Build .NET 6 - dependsOn: [] + displayName: .NET 6 Samples + dependsOn: pack_net6 jobs: - ${{ each BuildPlatform in parameters.BuildPlatforms }}: - ${{ each BuildCondition in parameters.BuildConfigurations }}: - job: build_net6_${{ BuildPlatform.name }}_${{ BuildCondition }} workspace: clean: all - displayName: Build .NET 6 (${{ BuildPlatform.name }} | ${{ BuildCondition }}) + displayName: .NET 6 Samples (${{ BuildPlatform.name }} | ${{ BuildCondition }}) timeoutInMinutes: 120 condition: or( ${{ parameters.BuildEverything }}, @@ -328,22 +326,19 @@ stages: displayName: configure vsmac xcode - script: echo '##vso[task.setvariable variable=JI_JAVA_HOME]$(JAVA_HOME_11_X64)' displayName: set JI_JAVA_HOME - - - ${{ if eq(BuildPlatform.name, 'windows') }}: - - task: xamops.azdevex.provisionator-task.provisionator@1 - displayName: 'Provision VSWindows' - inputs: - provisioning_script: $(provisionator.vs2019) + + - task: DownloadPipelineArtifact@2 + displayName: download nuget + inputs: + artifact: nuget + patterns: '**/*.nupkg' + path: $(System.DefaultWorkingDirectory)/artifacts - pwsh: | - & dotnet build src/DotNet/DotNet.csproj -bl:$(LogDirectory)/$(BuildConfiguration)-dotnet.binlog + & dotnet build src/DotNet/DotNet.csproj -p:InstallWorkloadPacks=false -bl:$(LogDirectory)/$(BuildConfiguration)-dotnet.binlog $env:PATH = (Join-Path '$(System.DefaultWorkingDirectory)' 'bin/dotnet') + [IO.Path]::PathSeparator + $env:PATH - & $(DotNet.Path) build Microsoft.Maui.BuildTasks-net6.sln -c $(BuildConfiguration) -bl:$(LogDirectory)/$(BuildConfiguration)-buildtasks.binlog - & $(DotNet.Path) build src/Controls/samples/Controls.Sample.Droid/Maui.Controls.Sample.Droid-net6.csproj -c $(BuildConfiguration) -bl:$(LogDirectory)/$(BuildConfiguration)-android.binlog - & $(DotNet.Path) build src/Controls/samples/Controls.Sample.iOS/Maui.Controls.Sample.iOS-net6.csproj -c $(BuildConfiguration) -bl:$(LogDirectory)/$(BuildConfiguration)-iOS.binlog - & $(DotNet.Path) build src/Controls/samples/Controls.Sample.MacCatalyst/Maui.Controls.Sample.MacCatalyst-net6.csproj -c $(BuildConfiguration) -bl:$(LogDirectory)/$(BuildConfiguration)-MacCatalyst.binlog - & $(DotNet.Path) build src/Controls/samples/Controls.Sample.SingleProject/Maui.Controls.Sample.SingleProject.csproj -c $(BuildConfiguration) -bl:$(LogDirectory)/$(BuildConfiguration)-SingleProject.binlog - & $(DotNet.Path) build Microsoft.Maui-net6.sln -c $(BuildConfiguration) -bl:$(LogDirectory)/$(BuildConfiguration).binlog + & $(DotNet.Path) build src/DotNet/DotNet.csproj -t:Install -bl:$(LogDirectory)/$(BuildConfiguration)-dotnet-install.binlog + & $(DotNet.Path) build Microsoft.Maui.Samples-net6.slnf -c $(BuildConfiguration) -p:UseWorkload=true -bl:$(LogDirectory)/$(BuildConfiguration)-samples.binlog displayName: build samples errorActionPreference: stop - task: PublishBuildArtifacts@1 diff --git a/src/BlazorWebView/src/Maui/Microsoft.AspNetCore.Components.WebView.Maui.csproj b/src/BlazorWebView/src/Maui/Microsoft.AspNetCore.Components.WebView.Maui.csproj index cafbd045b..200c3e315 100644 --- a/src/BlazorWebView/src/Maui/Microsoft.AspNetCore.Components.WebView.Maui.csproj +++ b/src/BlazorWebView/src/Maui/Microsoft.AspNetCore.Components.WebView.Maui.csproj @@ -33,7 +33,10 @@ - - + + + + + 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