diff --git a/Directory.Build.props b/Directory.Build.props
index dd5636ac41..8d0e407b01 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -17,7 +17,9 @@
+
uap10.0.16299
+ net9.0-windows10.0.17763.0
net6.0-windows10.0.18362.0
net6.0;net7.0;net8.0;net9.0
diff --git a/eng/verify-nupkgs.ps1 b/eng/verify-nupkgs.ps1
index 2b495e0083..3d4a2f1464 100644
--- a/eng/verify-nupkgs.ps1
+++ b/eng/verify-nupkgs.ps1
@@ -20,8 +20,8 @@ function Confirm-NugetPackages {
Write-Verbose "Starting Confirm-NugetPackages."
$expectedNumOfFiles = @{
"MSTest.Sdk" = 15
- "MSTest.TestFramework" = 148
- "MSTest.TestAdapter" = 75
+ "MSTest.TestFramework" = 150
+ "MSTest.TestAdapter" = 77
"MSTest" = 14
"MSTest.Analyzers" = 56
}
diff --git a/samples/public/BlankUwpNet9App/App.xaml b/samples/public/BlankUwpNet9App/App.xaml
new file mode 100644
index 0000000000..dfc0b61956
--- /dev/null
+++ b/samples/public/BlankUwpNet9App/App.xaml
@@ -0,0 +1,5 @@
+
diff --git a/samples/public/BlankUwpNet9App/App.xaml.cs b/samples/public/BlankUwpNet9App/App.xaml.cs
new file mode 100644
index 0000000000..b76d857318
--- /dev/null
+++ b/samples/public/BlankUwpNet9App/App.xaml.cs
@@ -0,0 +1,83 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System;
+
+using Windows.ApplicationModel;
+using Windows.ApplicationModel.Activation;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Navigation;
+
+namespace BlankUwpNet9App;
+
+///
+/// Provides application-specific behavior to supplement the default Application class.
+///
+public sealed partial class App : Application
+{
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public App()
+ {
+ InitializeComponent();
+
+ Suspending += OnSuspending;
+ }
+
+ ///
+ protected override void OnLaunched(LaunchActivatedEventArgs args)
+ {
+ var rootFrame = Window.Current.Content as Frame;
+
+ // Do not repeat app initialization when the Window already has content,
+ // just ensure that the window is active.
+ if (rootFrame == null)
+ {
+ // Create a Frame to act as the navigation context and navigate to the first page
+ rootFrame = new Frame();
+
+ rootFrame.NavigationFailed += OnNavigationFailed;
+
+ if (args.PreviousExecutionState == ApplicationExecutionState.Terminated)
+ {
+ // TODO: Load state from previously suspended application
+ }
+
+ // Place the frame in the current Window
+ Window.Current.Content = rootFrame;
+ }
+
+ Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.CreateDefaultUI();
+
+ // Ensure the current window is active
+ Window.Current.Activate();
+
+ Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.Run(args.Arguments);
+ }
+
+ ///
+ /// Invoked when Navigation to a certain page fails.
+ ///
+ /// The Frame which failed navigation.
+ /// Details about the navigation failure.
+ private void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
+ => throw new Exception($"Failed to load page '{e.SourcePageType.FullName}'.");
+
+ ///
+ /// Invoked when application execution is being suspended. Application state is saved
+ /// without knowing whether the application will be terminated or resumed with the contents
+ /// of memory still intact.
+ ///
+ /// The source of the suspend request.
+ /// Details about the suspend request.
+ private void OnSuspending(object sender, SuspendingEventArgs e)
+ {
+ SuspendingDeferral deferral = e.SuspendingOperation.GetDeferral();
+
+ // TODO: Save application state and stop any background activity
+ deferral.Complete();
+ }
+}
diff --git a/samples/public/BlankUwpNet9App/Assets/LockScreenLogo.scale-200.png b/samples/public/BlankUwpNet9App/Assets/LockScreenLogo.scale-200.png
new file mode 100644
index 0000000000..735f57adb5
Binary files /dev/null and b/samples/public/BlankUwpNet9App/Assets/LockScreenLogo.scale-200.png differ
diff --git a/samples/public/BlankUwpNet9App/Assets/SplashScreen.scale-200.png b/samples/public/BlankUwpNet9App/Assets/SplashScreen.scale-200.png
new file mode 100644
index 0000000000..023e7f1fed
Binary files /dev/null and b/samples/public/BlankUwpNet9App/Assets/SplashScreen.scale-200.png differ
diff --git a/samples/public/BlankUwpNet9App/Assets/Square150x150Logo.scale-200.png b/samples/public/BlankUwpNet9App/Assets/Square150x150Logo.scale-200.png
new file mode 100644
index 0000000000..af49fec1a5
Binary files /dev/null and b/samples/public/BlankUwpNet9App/Assets/Square150x150Logo.scale-200.png differ
diff --git a/samples/public/BlankUwpNet9App/Assets/Square44x44Logo.scale-200.png b/samples/public/BlankUwpNet9App/Assets/Square44x44Logo.scale-200.png
new file mode 100644
index 0000000000..ce342a2ec8
Binary files /dev/null and b/samples/public/BlankUwpNet9App/Assets/Square44x44Logo.scale-200.png differ
diff --git a/samples/public/BlankUwpNet9App/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/samples/public/BlankUwpNet9App/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 0000000000..f6c02ce97e
Binary files /dev/null and b/samples/public/BlankUwpNet9App/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ
diff --git a/samples/public/BlankUwpNet9App/Assets/StoreLogo.png b/samples/public/BlankUwpNet9App/Assets/StoreLogo.png
new file mode 100644
index 0000000000..7385b56c0e
Binary files /dev/null and b/samples/public/BlankUwpNet9App/Assets/StoreLogo.png differ
diff --git a/samples/public/BlankUwpNet9App/Assets/Wide310x150Logo.scale-200.png b/samples/public/BlankUwpNet9App/Assets/Wide310x150Logo.scale-200.png
new file mode 100644
index 0000000000..288995b397
Binary files /dev/null and b/samples/public/BlankUwpNet9App/Assets/Wide310x150Logo.scale-200.png differ
diff --git a/samples/public/BlankUwpNet9App/BlankUwpNet9App.csproj b/samples/public/BlankUwpNet9App/BlankUwpNet9App.csproj
new file mode 100644
index 0000000000..cf397c9d56
--- /dev/null
+++ b/samples/public/BlankUwpNet9App/BlankUwpNet9App.csproj
@@ -0,0 +1,27 @@
+
+
+
+ WinExe
+ net9.0-windows10.0.26100.0
+ 10.0.17763.0
+ x86;x64;arm64
+ win-x86;win-x64;win-arm64
+ win-$(Platform).pubxml
+ en-US
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/public/BlankUwpNet9App/BlankUwpNet9App.sln b/samples/public/BlankUwpNet9App/BlankUwpNet9App.sln
new file mode 100644
index 0000000000..ded1149e77
--- /dev/null
+++ b/samples/public/BlankUwpNet9App/BlankUwpNet9App.sln
@@ -0,0 +1,37 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.12.35521.163
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlankUwpNet9App", "BlankUwpNet9App.csproj", "{D9E66319-BE72-4384-93FC-CA0C1B79C7FC}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|arm64 = Debug|arm64
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|arm64 = Release|arm64
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D9E66319-BE72-4384-93FC-CA0C1B79C7FC}.Debug|arm64.ActiveCfg = Debug|arm64
+ {D9E66319-BE72-4384-93FC-CA0C1B79C7FC}.Debug|arm64.Build.0 = Debug|arm64
+ {D9E66319-BE72-4384-93FC-CA0C1B79C7FC}.Debug|arm64.Deploy.0 = Debug|arm64
+ {D9E66319-BE72-4384-93FC-CA0C1B79C7FC}.Debug|x64.ActiveCfg = Debug|x64
+ {D9E66319-BE72-4384-93FC-CA0C1B79C7FC}.Debug|x64.Build.0 = Debug|x64
+ {D9E66319-BE72-4384-93FC-CA0C1B79C7FC}.Debug|x64.Deploy.0 = Debug|x64
+ {D9E66319-BE72-4384-93FC-CA0C1B79C7FC}.Debug|x86.ActiveCfg = Debug|x86
+ {D9E66319-BE72-4384-93FC-CA0C1B79C7FC}.Debug|x86.Build.0 = Debug|x86
+ {D9E66319-BE72-4384-93FC-CA0C1B79C7FC}.Debug|x86.Deploy.0 = Debug|x86
+ {D9E66319-BE72-4384-93FC-CA0C1B79C7FC}.Release|arm64.ActiveCfg = Release|arm64
+ {D9E66319-BE72-4384-93FC-CA0C1B79C7FC}.Release|arm64.Build.0 = Release|arm64
+ {D9E66319-BE72-4384-93FC-CA0C1B79C7FC}.Release|x64.ActiveCfg = Release|x64
+ {D9E66319-BE72-4384-93FC-CA0C1B79C7FC}.Release|x64.Build.0 = Release|x64
+ {D9E66319-BE72-4384-93FC-CA0C1B79C7FC}.Release|x86.ActiveCfg = Release|x86
+ {D9E66319-BE72-4384-93FC-CA0C1B79C7FC}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/samples/public/BlankUwpNet9App/MainPage.xaml b/samples/public/BlankUwpNet9App/MainPage.xaml
new file mode 100644
index 0000000000..16d586339d
--- /dev/null
+++ b/samples/public/BlankUwpNet9App/MainPage.xaml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/samples/public/BlankUwpNet9App/MainPage.xaml.cs b/samples/public/BlankUwpNet9App/MainPage.xaml.cs
new file mode 100644
index 0000000000..2ecc3dc221
--- /dev/null
+++ b/samples/public/BlankUwpNet9App/MainPage.xaml.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices.WindowsRuntime;
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Controls.Primitives;
+using Windows.UI.Xaml.Data;
+using Windows.UI.Xaml.Input;
+using Windows.UI.Xaml.Media;
+using Windows.UI.Xaml.Navigation;
+
+// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
+
+namespace BlankUwpNet9App;
+
+///
+/// An empty page that can be used on its own or navigated to within a Frame.
+///
+public sealed partial class MainPage : Page
+{
+ public MainPage()
+ {
+ InitializeComponent();
+ }
+}
diff --git a/samples/public/BlankUwpNet9App/Package.appxmanifest b/samples/public/BlankUwpNet9App/Package.appxmanifest
new file mode 100644
index 0000000000..77da1ca77e
--- /dev/null
+++ b/samples/public/BlankUwpNet9App/Package.appxmanifest
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+ BlankUwpNet9App
+ sergiopedri
+ Assets\StoreLogo.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/public/BlankUwpNet9App/Properties/PublishProfiles/win-arm64.pubxml b/samples/public/BlankUwpNet9App/Properties/PublishProfiles/win-arm64.pubxml
new file mode 100644
index 0000000000..eeb8cf16ff
--- /dev/null
+++ b/samples/public/BlankUwpNet9App/Properties/PublishProfiles/win-arm64.pubxml
@@ -0,0 +1,14 @@
+
+
+
+
+ FileSystem
+ ARM64
+ win-arm64
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ true
+
+
\ No newline at end of file
diff --git a/samples/public/BlankUwpNet9App/Properties/PublishProfiles/win-x64.pubxml b/samples/public/BlankUwpNet9App/Properties/PublishProfiles/win-x64.pubxml
new file mode 100644
index 0000000000..39e4198f2b
--- /dev/null
+++ b/samples/public/BlankUwpNet9App/Properties/PublishProfiles/win-x64.pubxml
@@ -0,0 +1,14 @@
+
+
+
+
+ FileSystem
+ x64
+ win-x64
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ true
+
+
diff --git a/samples/public/BlankUwpNet9App/Properties/PublishProfiles/win-x86.pubxml b/samples/public/BlankUwpNet9App/Properties/PublishProfiles/win-x86.pubxml
new file mode 100644
index 0000000000..3293f82cb0
--- /dev/null
+++ b/samples/public/BlankUwpNet9App/Properties/PublishProfiles/win-x86.pubxml
@@ -0,0 +1,14 @@
+
+
+
+
+ FileSystem
+ x86
+ win-x86
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ true
+
+
\ No newline at end of file
diff --git a/samples/public/BlankUwpNet9App/Properties/launchSettings.json b/samples/public/BlankUwpNet9App/Properties/launchSettings.json
new file mode 100644
index 0000000000..8c4e9787e3
--- /dev/null
+++ b/samples/public/BlankUwpNet9App/Properties/launchSettings.json
@@ -0,0 +1,7 @@
+{
+ "profiles": {
+ "BlankUwpNet9App": {
+ "commandName": "MsixPackage"
+ }
+ }
+}
\ No newline at end of file
diff --git a/samples/public/BlankUwpNet9App/UnitTests.cs b/samples/public/BlankUwpNet9App/UnitTests.cs
new file mode 100644
index 0000000000..b517369b25
--- /dev/null
+++ b/samples/public/BlankUwpNet9App/UnitTests.cs
@@ -0,0 +1,28 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Microsoft.VisualStudio.TestTools.UnitTesting.AppContainer;
+
+using Windows.UI.Xaml.Controls;
+
+namespace App1;
+
+[TestClass]
+public class UnitTest1
+{
+ [TestMethod]
+ public void TestMethod1()
+ {
+ Assert.AreEqual(0, 0);
+ }
+
+ // Use the UITestMethod attribute for tests that need to run on the UI thread.
+ [UITestMethod]
+ public void TestMethod2()
+ {
+ Grid grid = new();
+
+ Assert.AreEqual(0, grid.MinWidth);
+ }
+}
diff --git a/samples/public/BlankWinUINet9App/Assets/LockScreenLogo.scale-200.png b/samples/public/BlankWinUINet9App/Assets/LockScreenLogo.scale-200.png
new file mode 100644
index 0000000000..7440f0d4bf
Binary files /dev/null and b/samples/public/BlankWinUINet9App/Assets/LockScreenLogo.scale-200.png differ
diff --git a/samples/public/BlankWinUINet9App/Assets/SplashScreen.scale-200.png b/samples/public/BlankWinUINet9App/Assets/SplashScreen.scale-200.png
new file mode 100644
index 0000000000..32f486a867
Binary files /dev/null and b/samples/public/BlankWinUINet9App/Assets/SplashScreen.scale-200.png differ
diff --git a/samples/public/BlankWinUINet9App/Assets/Square150x150Logo.scale-200.png b/samples/public/BlankWinUINet9App/Assets/Square150x150Logo.scale-200.png
new file mode 100644
index 0000000000..53ee3777ea
Binary files /dev/null and b/samples/public/BlankWinUINet9App/Assets/Square150x150Logo.scale-200.png differ
diff --git a/samples/public/BlankWinUINet9App/Assets/Square44x44Logo.scale-200.png b/samples/public/BlankWinUINet9App/Assets/Square44x44Logo.scale-200.png
new file mode 100644
index 0000000000..f713bba67f
Binary files /dev/null and b/samples/public/BlankWinUINet9App/Assets/Square44x44Logo.scale-200.png differ
diff --git a/samples/public/BlankWinUINet9App/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/samples/public/BlankWinUINet9App/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 0000000000..dc9f5bea0c
Binary files /dev/null and b/samples/public/BlankWinUINet9App/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ
diff --git a/samples/public/BlankWinUINet9App/Assets/StoreLogo.png b/samples/public/BlankWinUINet9App/Assets/StoreLogo.png
new file mode 100644
index 0000000000..a4586f26bd
Binary files /dev/null and b/samples/public/BlankWinUINet9App/Assets/StoreLogo.png differ
diff --git a/samples/public/BlankWinUINet9App/Assets/Wide310x150Logo.scale-200.png b/samples/public/BlankWinUINet9App/Assets/Wide310x150Logo.scale-200.png
new file mode 100644
index 0000000000..8b4a5d0dd5
Binary files /dev/null and b/samples/public/BlankWinUINet9App/Assets/Wide310x150Logo.scale-200.png differ
diff --git a/samples/public/BlankWinUINet9App/BlankWinUINet9App.csproj b/samples/public/BlankWinUINet9App/BlankWinUINet9App.csproj
new file mode 100644
index 0000000000..4ac021761a
--- /dev/null
+++ b/samples/public/BlankWinUINet9App/BlankWinUINet9App.csproj
@@ -0,0 +1,67 @@
+
+
+ WinExe
+ net9.0-windows10.0.26100.0
+ 10.0.17763.0
+ BlankWinUINet9App
+ app.manifest
+ x86;x64;ARM64
+ win-x86;win-x64;win-arm64
+ win-$(Platform).pubxml
+ true
+ true
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ False
+ True
+ False
+
+
diff --git a/samples/public/BlankWinUINet9App/BlankWinUINet9App.sln b/samples/public/BlankWinUINet9App/BlankWinUINet9App.sln
new file mode 100644
index 0000000000..381bbeb794
--- /dev/null
+++ b/samples/public/BlankWinUINet9App/BlankWinUINet9App.sln
@@ -0,0 +1,43 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.13.35723.152 d17.13
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlankWinUINet9App", "BlankWinUINet9App.csproj", "{7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM64 = Debug|ARM64
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|ARM64 = Release|ARM64
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Debug|ARM64.Build.0 = Debug|ARM64
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Debug|ARM64.Deploy.0 = Debug|ARM64
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Debug|x64.ActiveCfg = Debug|x64
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Debug|x64.Build.0 = Debug|x64
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Debug|x64.Deploy.0 = Debug|x64
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Debug|x86.ActiveCfg = Debug|x86
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Debug|x86.Build.0 = Debug|x86
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Debug|x86.Deploy.0 = Debug|x86
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Release|ARM64.ActiveCfg = Release|ARM64
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Release|ARM64.Build.0 = Release|ARM64
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Release|ARM64.Deploy.0 = Release|ARM64
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Release|x64.ActiveCfg = Release|x64
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Release|x64.Build.0 = Release|x64
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Release|x64.Deploy.0 = Release|x64
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Release|x86.ActiveCfg = Release|x86
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Release|x86.Build.0 = Release|x86
+ {7A0F0D9A-ED0B-372A-7938-E86D9177ABD0}.Release|x86.Deploy.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {DD0F22C1-24C7-4EA4-87DD-80DAEDDBA135}
+ EndGlobalSection
+EndGlobal
diff --git a/samples/public/BlankWinUINet9App/Package.appxmanifest b/samples/public/BlankWinUINet9App/Package.appxmanifest
new file mode 100644
index 0000000000..5787a62d46
--- /dev/null
+++ b/samples/public/BlankWinUINet9App/Package.appxmanifest
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+ BlankWinUINet9App
+ adstep
+ Assets\StoreLogo.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/public/BlankWinUINet9App/Properties/PublishProfiles/win-arm64.pubxml b/samples/public/BlankWinUINet9App/Properties/PublishProfiles/win-arm64.pubxml
new file mode 100644
index 0000000000..8953cce984
--- /dev/null
+++ b/samples/public/BlankWinUINet9App/Properties/PublishProfiles/win-arm64.pubxml
@@ -0,0 +1,14 @@
+
+
+
+
+ FileSystem
+ ARM64
+ win-arm64
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ False
+
+
\ No newline at end of file
diff --git a/samples/public/BlankWinUINet9App/Properties/PublishProfiles/win-x64.pubxml b/samples/public/BlankWinUINet9App/Properties/PublishProfiles/win-x64.pubxml
new file mode 100644
index 0000000000..cd995617c0
--- /dev/null
+++ b/samples/public/BlankWinUINet9App/Properties/PublishProfiles/win-x64.pubxml
@@ -0,0 +1,14 @@
+
+
+
+
+ FileSystem
+ x64
+ win-x64
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ False
+
+
\ No newline at end of file
diff --git a/samples/public/BlankWinUINet9App/Properties/PublishProfiles/win-x86.pubxml b/samples/public/BlankWinUINet9App/Properties/PublishProfiles/win-x86.pubxml
new file mode 100644
index 0000000000..a70c69425f
--- /dev/null
+++ b/samples/public/BlankWinUINet9App/Properties/PublishProfiles/win-x86.pubxml
@@ -0,0 +1,14 @@
+
+
+
+
+ FileSystem
+ x86
+ win-x86
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ False
+
+
\ No newline at end of file
diff --git a/samples/public/BlankWinUINet9App/Properties/launchSettings.json b/samples/public/BlankWinUINet9App/Properties/launchSettings.json
new file mode 100644
index 0000000000..a32530d881
--- /dev/null
+++ b/samples/public/BlankWinUINet9App/Properties/launchSettings.json
@@ -0,0 +1,10 @@
+{
+ "profiles": {
+ "BlankWinUINet9App (Package)": {
+ "commandName": "MsixPackage"
+ },
+ "BlankWinUINet9App (Unpackaged)": {
+ "commandName": "Project"
+ }
+ }
+}
\ No newline at end of file
diff --git a/samples/public/BlankWinUINet9App/UnitTestApp.xaml b/samples/public/BlankWinUINet9App/UnitTestApp.xaml
new file mode 100644
index 0000000000..3a18829b99
--- /dev/null
+++ b/samples/public/BlankWinUINet9App/UnitTestApp.xaml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/public/BlankWinUINet9App/UnitTestApp.xaml.cs b/samples/public/BlankWinUINet9App/UnitTestApp.xaml.cs
new file mode 100644
index 0000000000..b3a6a4910e
--- /dev/null
+++ b/samples/public/BlankWinUINet9App/UnitTestApp.xaml.cs
@@ -0,0 +1,60 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices.WindowsRuntime;
+
+using Microsoft.UI.Xaml;
+using Microsoft.UI.Xaml.Controls;
+using Microsoft.UI.Xaml.Controls.Primitives;
+using Microsoft.UI.Xaml.Data;
+using Microsoft.UI.Xaml.Input;
+using Microsoft.UI.Xaml.Media;
+using Microsoft.UI.Xaml.Navigation;
+using Microsoft.UI.Xaml.Shapes;
+using Microsoft.VisualStudio.TestTools.UnitTesting.AppContainer;
+
+using Windows.ApplicationModel;
+using Windows.ApplicationModel.Activation;
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace BlankWinUINet9App;
+///
+/// Provides application-specific behavior to supplement the default Application class.
+///
+public partial class UnitTestApp : Application
+{
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public UnitTestApp()
+ {
+ this.InitializeComponent();
+ }
+
+ ///
+ /// Invoked when the application is launched.
+ ///
+ /// Details about the launch request and process.
+ protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
+ {
+ Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.CreateDefaultUI();
+
+ m_window = new UnitTestAppWindow();
+ m_window.Activate();
+
+ UITestMethodAttribute.DispatcherQueue = m_window.DispatcherQueue;
+
+ Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.Run(Environment.CommandLine);
+ }
+
+ private Window? m_window;
+}
diff --git a/samples/public/BlankWinUINet9App/UnitTestAppWindow.xaml b/samples/public/BlankWinUINet9App/UnitTestAppWindow.xaml
new file mode 100644
index 0000000000..0a7d56492f
--- /dev/null
+++ b/samples/public/BlankWinUINet9App/UnitTestAppWindow.xaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/samples/public/BlankWinUINet9App/UnitTestAppWindow.xaml.cs b/samples/public/BlankWinUINet9App/UnitTestAppWindow.xaml.cs
new file mode 100644
index 0000000000..924099cc94
--- /dev/null
+++ b/samples/public/BlankWinUINet9App/UnitTestAppWindow.xaml.cs
@@ -0,0 +1,31 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices.WindowsRuntime;
+
+using Microsoft.UI.Xaml;
+using Microsoft.UI.Xaml.Controls;
+using Microsoft.UI.Xaml.Controls.Primitives;
+using Microsoft.UI.Xaml.Data;
+using Microsoft.UI.Xaml.Input;
+using Microsoft.UI.Xaml.Media;
+using Microsoft.UI.Xaml.Navigation;
+
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace BlankWinUINet9App;
+public sealed partial class UnitTestAppWindow : Window
+{
+ public UnitTestAppWindow()
+ {
+ this.InitializeComponent();
+ }
+}
diff --git a/samples/public/BlankWinUINet9App/UnitTests.cs b/samples/public/BlankWinUINet9App/UnitTests.cs
new file mode 100644
index 0000000000..04bad822ea
--- /dev/null
+++ b/samples/public/BlankWinUINet9App/UnitTests.cs
@@ -0,0 +1,29 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+using Microsoft.UI.Xaml.Controls;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Microsoft.VisualStudio.TestTools.UnitTesting.AppContainer;
+
+namespace BlankWinUINet9App;
+[TestClass]
+public class UnitTest1
+{
+ [TestMethod]
+ public void TestMethod1()
+ {
+ Assert.AreEqual(0, 0);
+ }
+
+ // Use the UITestMethod attribute for tests that need to run on the UI thread.
+ [UITestMethod]
+ public void TestMethod2()
+ {
+ var grid = new Grid();
+ Assert.AreEqual(0, grid.MinWidth);
+ }
+}
diff --git a/samples/public/BlankWinUINet9App/app.manifest b/samples/public/BlankWinUINet9App/app.manifest
new file mode 100644
index 0000000000..88bf833bf5
--- /dev/null
+++ b/samples/public/BlankWinUINet9App/app.manifest
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PerMonitorV2
+
+
+
\ No newline at end of file
diff --git a/samples/public/NuGet.config b/samples/public/NuGet.config
index 20182a5787..dc8619a6b1 100644
--- a/samples/public/NuGet.config
+++ b/samples/public/NuGet.config
@@ -1,4 +1,4 @@
-
+
diff --git a/src/Adapter/MSTest.TestAdapter/MSTest.TestAdapter.csproj b/src/Adapter/MSTest.TestAdapter/MSTest.TestAdapter.csproj
index e5fd95f209..2acf8cb375 100644
--- a/src/Adapter/MSTest.TestAdapter/MSTest.TestAdapter.csproj
+++ b/src/Adapter/MSTest.TestAdapter/MSTest.TestAdapter.csproj
@@ -5,7 +5,7 @@
- netstandard2.0;$(NetFrameworkMinimum);$(SupportedNetFrameworks);$(UwpMinimum);$(WinUiMinimum)
+ netstandard2.0;$(NetFrameworkMinimum);$(SupportedNetFrameworks);$(UwpMinimum);$(ModernUwpMinimum);$(WinUiMinimum)
$(SupportedNetFrameworks);netstandard2.0
true
@@ -33,6 +33,7 @@
- .NET 6.0+
- .NET 6.0 Windows.18362+
- UWP 10.0.16299
+ - UWP 10.0.17763 with .NET 9
$(NoWarn);NU5127;NU5128;NU5100
@@ -46,6 +47,11 @@
true
+
+
+ $(DefineConstants);WINDOWS_UWP
+
+
@@ -57,16 +63,17 @@
-
+
-
-
-
-
+
+
+
+
True
True
@@ -144,5 +151,5 @@
-
+
diff --git a/src/Adapter/MSTest.TestAdapter/MSTest.TestAdapter.nuspec b/src/Adapter/MSTest.TestAdapter/MSTest.TestAdapter.nuspec
index 98347948b2..7349a1208d 100644
--- a/src/Adapter/MSTest.TestAdapter/MSTest.TestAdapter.nuspec
+++ b/src/Adapter/MSTest.TestAdapter/MSTest.TestAdapter.nuspec
@@ -90,7 +90,9 @@
+
+
diff --git a/src/Adapter/MSTest.TestAdapter/PACKAGE.md b/src/Adapter/MSTest.TestAdapter/PACKAGE.md
index 49347b92da..058eae1035 100644
--- a/src/Adapter/MSTest.TestAdapter/PACKAGE.md
+++ b/src/Adapter/MSTest.TestAdapter/PACKAGE.md
@@ -11,3 +11,4 @@ Supported platforms:
- .NET 6.0+
- .NET 6.0 Windows.18362+
- UWP 10.0.16299
+- UWP 10.0.17763 with .NET 9+
diff --git a/src/Adapter/MSTest.TestAdapter/PublicAPI/uap10.0.16299/PublicAPI.Shipped.txt b/src/Adapter/MSTest.TestAdapter/PublicAPI/uwp/PublicAPI.Shipped.txt
similarity index 100%
rename from src/Adapter/MSTest.TestAdapter/PublicAPI/uap10.0.16299/PublicAPI.Shipped.txt
rename to src/Adapter/MSTest.TestAdapter/PublicAPI/uwp/PublicAPI.Shipped.txt
diff --git a/src/Adapter/MSTest.TestAdapter/PublicAPI/uap10.0.16299/PublicAPI.Unshipped.txt b/src/Adapter/MSTest.TestAdapter/PublicAPI/uwp/PublicAPI.Unshipped.txt
similarity index 100%
rename from src/Adapter/MSTest.TestAdapter/PublicAPI/uap10.0.16299/PublicAPI.Unshipped.txt
rename to src/Adapter/MSTest.TestAdapter/PublicAPI/uwp/PublicAPI.Unshipped.txt
diff --git a/src/Adapter/MSTest.TestAdapter/buildTransitive/common/MSTest.TestAdapter.targets b/src/Adapter/MSTest.TestAdapter/buildTransitive/common/MSTest.TestAdapter.targets
index f3ef87d399..bd4f29e08c 100644
--- a/src/Adapter/MSTest.TestAdapter/buildTransitive/common/MSTest.TestAdapter.targets
+++ b/src/Adapter/MSTest.TestAdapter/buildTransitive/common/MSTest.TestAdapter.targets
@@ -9,10 +9,13 @@
- <__TestAdapterPlatformServicesRoot>$(MSBuildThisFileDirectory)../net6.0/winui/
+ <_TestAdapterPlatformServicesRoot>$(MSBuildThisFileDirectory)../net6.0/winui/
-
- <__TestAdapterPlatformServicesRoot>$(MSBuildThisFileDirectory)
+
+ <_TestAdapterPlatformServicesRoot>$(MSBuildThisFileDirectory)../net9.0/uwp/
+
+
+ <_TestAdapterPlatformServicesRoot>$(MSBuildThisFileDirectory)
@@ -21,7 +24,7 @@
PreserveNewest
False
-
+
Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll
PreserveNewest
False
@@ -48,7 +51,7 @@
- $(__TestAdapterPlatformServicesRoot)Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll
+ $(_TestAdapterPlatformServicesRoot)Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll
diff --git a/src/Adapter/MSTestAdapter.PlatformServices/AssemblyResolver.cs b/src/Adapter/MSTestAdapter.PlatformServices/AssemblyResolver.cs
index 7b9afa93ec..b98adce22f 100644
--- a/src/Adapter/MSTestAdapter.PlatformServices/AssemblyResolver.cs
+++ b/src/Adapter/MSTestAdapter.PlatformServices/AssemblyResolver.cs
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-#if NETFRAMEWORK || NET
+#if NETFRAMEWORK || (NET && !WINDOWS_UWP)
#if NETFRAMEWORK
using System.Runtime.InteropServices.WindowsRuntime;
using System.Security;
diff --git a/src/Adapter/MSTestAdapter.PlatformServices/MSTestAdapter.PlatformServices.csproj b/src/Adapter/MSTestAdapter.PlatformServices/MSTestAdapter.PlatformServices.csproj
index d90c83fc93..15b5a1ee54 100644
--- a/src/Adapter/MSTestAdapter.PlatformServices/MSTestAdapter.PlatformServices.csproj
+++ b/src/Adapter/MSTestAdapter.PlatformServices/MSTestAdapter.PlatformServices.csproj
@@ -5,7 +5,7 @@
- netstandard2.0;$(NetFrameworkMinimum);$(SupportedNetFrameworks);$(UwpMinimum);$(WinUiMinimum)
+ netstandard2.0;$(NetFrameworkMinimum);$(SupportedNetFrameworks);$(UwpMinimum);$(ModernUwpMinimum);$(WinUiMinimum)
$(SupportedNetFrameworks);netstandard2.0
true
@@ -17,9 +17,10 @@
-
- $(DefineConstants);NETFX_CORE;WINDOWS_UWP
+
+ $(DefineConstants);WINDOWS_UWP
+
10.0.18362.0
@@ -59,7 +60,7 @@
-
+
True
True
diff --git a/src/Adapter/MSTestAdapter.PlatformServices/PublicAPI/net9.0-windows10.0.17763.0/PublicAPI.Shipped.txt b/src/Adapter/MSTestAdapter.PlatformServices/PublicAPI/net9.0-windows10.0.17763.0/PublicAPI.Shipped.txt
new file mode 100644
index 0000000000..7dc5c58110
--- /dev/null
+++ b/src/Adapter/MSTestAdapter.PlatformServices/PublicAPI/net9.0-windows10.0.17763.0/PublicAPI.Shipped.txt
@@ -0,0 +1 @@
+#nullable enable
diff --git a/src/Adapter/MSTestAdapter.PlatformServices/PublicAPI/net9.0-windows10.0.17763.0/PublicAPI.Unshipped.txt b/src/Adapter/MSTestAdapter.PlatformServices/PublicAPI/net9.0-windows10.0.17763.0/PublicAPI.Unshipped.txt
new file mode 100644
index 0000000000..24625c1ccf
--- /dev/null
+++ b/src/Adapter/MSTestAdapter.PlatformServices/PublicAPI/net9.0-windows10.0.17763.0/PublicAPI.Unshipped.txt
@@ -0,0 +1,4 @@
+#nullable enable
+Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TraceListenerManager.Close(Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITraceListener! traceListener) -> void
+Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TraceListenerWrapper.Close() -> void
+Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TraceListenerWrapper.Dispose() -> void
diff --git a/src/Adapter/MSTestAdapter.PlatformServices/Services/FileOperations.cs b/src/Adapter/MSTestAdapter.PlatformServices/Services/FileOperations.cs
index a1f223b449..9edfd8854e 100644
--- a/src/Adapter/MSTestAdapter.PlatformServices/Services/FileOperations.cs
+++ b/src/Adapter/MSTestAdapter.PlatformServices/Services/FileOperations.cs
@@ -69,7 +69,7 @@ public Assembly LoadAssembly(string assemblyName, bool isReflectionOnly)
/// The assembly.
/// Path to the .DLL of the assembly.
public string? GetAssemblyPath(Assembly assembly)
-#if NETSTANDARD || NETCOREAPP || NETFRAMEWORK
+#if NETSTANDARD || (NETCOREAPP && !WINDOWS_UWP) || NETFRAMEWORK
// This method will never be called in source generator mode, we are providing a different provider for file operations.
#pragma warning disable IL3000 // Avoid accessing Assembly file path when publishing as a single file
=> assembly.Location;
@@ -86,7 +86,7 @@ public Assembly LoadAssembly(string assemblyName, bool isReflectionOnly)
/// This is currently not implemented.
public bool DoesFileExist(string assemblyFileName)
{
-#if NETSTANDARD || (NETCOREAPP && !WIN_UI)
+#if NETSTANDARD || (NETCOREAPP && !WIN_UI && !WINDOWS_UWP)
// For projectK these assemblies can be created on the fly which means the file might not exist on disk.
// Depend on Assembly Load failures instead of this validation.
return true;
diff --git a/src/Adapter/MSTestAdapter.PlatformServices/Services/TestSourceHost.cs b/src/Adapter/MSTestAdapter.PlatformServices/Services/TestSourceHost.cs
index ee9deb39cb..fba4bffa20 100644
--- a/src/Adapter/MSTestAdapter.PlatformServices/Services/TestSourceHost.cs
+++ b/src/Adapter/MSTestAdapter.PlatformServices/Services/TestSourceHost.cs
@@ -9,7 +9,7 @@
using Microsoft.VisualStudio.TestPlatform.ObjectModel;
#endif
using Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter;
-#if NETFRAMEWORK || NET
+#if NETFRAMEWORK || (NET && !WINDOWS_UWP)
using Microsoft.VisualStudio.TestPlatform.ObjectModel.Utilities;
#endif
#if !WINDOWS_UWP
@@ -37,7 +37,7 @@ public class TestSourceHost : ITestSourceHost
private string? _currentDirectory;
#endif
-#if NETFRAMEWORK || NET
+#if NETFRAMEWORK || (NET && !WINDOWS_UWP)
///
/// Assembly resolver used in the current app-domain.
///
@@ -117,7 +117,7 @@ internal TestSourceHost(string sourceFileName, IRunSettings? runSettings, IFrame
///
public void SetupHost()
{
-#if NET
+#if NET && !WINDOWS_UWP
List resolutionPaths = GetResolutionPaths(_sourceFileName, false);
if (EqtTrace.IsInfoEnabled)
@@ -222,7 +222,7 @@ public void SetupHost()
///
public void Dispose()
{
-#if NETFRAMEWORK || NET
+#if NETFRAMEWORK || (NET && !WINDOWS_UWP)
if (_parentDomainAssemblyResolver != null)
{
_parentDomainAssemblyResolver.Dispose();
@@ -360,7 +360,7 @@ internal virtual string GetTargetFrameworkVersionString(string sourceFileName)
=> new DeploymentUtility().GetConfigFile(sourceFileName);
#endif
-#if NETFRAMEWORK || NET
+#if NETFRAMEWORK || (NET && !WINDOWS_UWP)
///
/// Gets the probing paths to load the test assembly dependencies.
///
diff --git a/src/Package/MSTest.Sdk/PACKAGE.md b/src/Package/MSTest.Sdk/PACKAGE.md
index 7a64c625b3..84ba460576 100644
--- a/src/Package/MSTest.Sdk/PACKAGE.md
+++ b/src/Package/MSTest.Sdk/PACKAGE.md
@@ -11,3 +11,4 @@ Supported platforms:
- .NET 6.0+
- .NET 6.0 Windows.18362+
- UWP 10.0.16299
+- UWP 10.0.17763 with .NET 9+
diff --git a/src/Package/MSTest/MSTest.csproj b/src/Package/MSTest/MSTest.csproj
index 9f8d0e6ea8..8efee48422 100644
--- a/src/Package/MSTest/MSTest.csproj
+++ b/src/Package/MSTest/MSTest.csproj
@@ -32,6 +32,7 @@
- .NET 6.0+
- .NET 6.0 Windows.18362+
- UWP 10.0.16299
+ - UWP 10.0.17763 with .NET 9+
$(TargetsForTfmSpecificContentInPackage);_AddEmptyTfmDirectoryInLib
diff --git a/src/Package/MSTest/PACKAGE.md b/src/Package/MSTest/PACKAGE.md
index 6b60e7be52..eced4b885e 100644
--- a/src/Package/MSTest/PACKAGE.md
+++ b/src/Package/MSTest/PACKAGE.md
@@ -11,3 +11,4 @@ Supported platforms:
- .NET 6.0+
- .NET 6.0 Windows.18362+
- UWP 10.0.16299
+- UWP 10.0.17763 with .NET 9+
diff --git a/src/TestFramework/TestFramework.Extensions/MSTest.TestFramework.NonWindows.nuspec b/src/TestFramework/TestFramework.Extensions/MSTest.TestFramework.NonWindows.nuspec
index 15d6a22fa0..df8e50a1a5 100644
--- a/src/TestFramework/TestFramework.Extensions/MSTest.TestFramework.NonWindows.nuspec
+++ b/src/TestFramework/TestFramework.Extensions/MSTest.TestFramework.NonWindows.nuspec
@@ -42,7 +42,7 @@
-
+
@@ -50,7 +50,7 @@
-
+
@@ -58,7 +58,7 @@
-
+
@@ -66,7 +66,7 @@
-
+
diff --git a/src/TestFramework/TestFramework.Extensions/MSTest.TestFramework.nuspec b/src/TestFramework/TestFramework.Extensions/MSTest.TestFramework.nuspec
index 031bb1b4b6..68a680f898 100644
--- a/src/TestFramework/TestFramework.Extensions/MSTest.TestFramework.nuspec
+++ b/src/TestFramework/TestFramework.Extensions/MSTest.TestFramework.nuspec
@@ -62,7 +62,7 @@
-
+
@@ -72,7 +72,7 @@
-
+
@@ -80,7 +80,7 @@
-
+
@@ -88,12 +88,14 @@
-
+
+
+
diff --git a/src/TestFramework/TestFramework.Extensions/PACKAGE.md b/src/TestFramework/TestFramework.Extensions/PACKAGE.md
index eab7d07745..abd016c0e4 100644
--- a/src/TestFramework/TestFramework.Extensions/PACKAGE.md
+++ b/src/TestFramework/TestFramework.Extensions/PACKAGE.md
@@ -11,3 +11,4 @@ Supported platforms:
- .NET 6.0+
- .NET 6.0 Windows.18362+
- UWP 10.0.16299
+- UWP 10.0.17763 with .NET 9
diff --git a/src/TestFramework/TestFramework.Extensions/PublicAPI/net9.0-windows10.0.17763.0/PublicAPI.Shipped.txt b/src/TestFramework/TestFramework.Extensions/PublicAPI/net9.0-windows10.0.17763.0/PublicAPI.Shipped.txt
new file mode 100644
index 0000000000..7dc5c58110
--- /dev/null
+++ b/src/TestFramework/TestFramework.Extensions/PublicAPI/net9.0-windows10.0.17763.0/PublicAPI.Shipped.txt
@@ -0,0 +1 @@
+#nullable enable
diff --git a/src/TestFramework/TestFramework.Extensions/PublicAPI/net9.0-windows10.0.17763.0/PublicAPI.Unshipped.txt b/src/TestFramework/TestFramework.Extensions/PublicAPI/net9.0-windows10.0.17763.0/PublicAPI.Unshipped.txt
new file mode 100644
index 0000000000..63494b4a7a
--- /dev/null
+++ b/src/TestFramework/TestFramework.Extensions/PublicAPI/net9.0-windows10.0.17763.0/PublicAPI.Unshipped.txt
@@ -0,0 +1,4 @@
+#nullable enable
+Microsoft.VisualStudio.TestTools.UnitTesting.AppContainer.UITestMethodAttribute
+Microsoft.VisualStudio.TestTools.UnitTesting.AppContainer.UITestMethodAttribute.UITestMethodAttribute() -> void
+override Microsoft.VisualStudio.TestTools.UnitTesting.AppContainer.UITestMethodAttribute.Execute(Microsoft.VisualStudio.TestTools.UnitTesting.ITestMethod! testMethod) -> Microsoft.VisualStudio.TestTools.UnitTesting.TestResult![]!
diff --git a/src/TestFramework/TestFramework.Extensions/TestFramework.Extensions.csproj b/src/TestFramework/TestFramework.Extensions/TestFramework.Extensions.csproj
index 4b4e311255..e897d00f87 100644
--- a/src/TestFramework/TestFramework.Extensions/TestFramework.Extensions.csproj
+++ b/src/TestFramework/TestFramework.Extensions/TestFramework.Extensions.csproj
@@ -5,7 +5,7 @@
- netstandard2.0;$(NetFrameworkMinimum);$(SupportedNetFrameworks);$(UwpMinimum);$(WinUiMinimum)
+ netstandard2.0;$(NetFrameworkMinimum);$(SupportedNetFrameworks);$(UwpMinimum);$(ModernUwpMinimum);$(WinUiMinimum)
$(SupportedNetFrameworks);netstandard2.0
true
@@ -28,6 +28,7 @@
- .NET 6.0+
- .NET 6.0 Windows.18362+
- UWP 10.0.16299
+ - UWP 10.0.17763 with .NET 9+
$(NoWarn);NU5100
@@ -47,8 +48,8 @@
win10-x86;win10-x64;win10-arm64
-
- $(DefineConstants);NETFX_CORE;WINDOWS_UWP
+
+ $(DefineConstants);WINDOWS_UWP
@@ -65,7 +66,7 @@
-
+
@@ -87,7 +88,7 @@
-
+
PreserveNewest
diff --git a/src/TestFramework/TestFramework.Extensions/buildTransitive/winui/MSTest.TestFramework.targets b/src/TestFramework/TestFramework.Extensions/buildTransitive/winui+uwp/MSTest.TestFramework.targets
similarity index 70%
rename from src/TestFramework/TestFramework.Extensions/buildTransitive/winui/MSTest.TestFramework.targets
rename to src/TestFramework/TestFramework.Extensions/buildTransitive/winui+uwp/MSTest.TestFramework.targets
index 0e39a79e7e..4fa711c2c7 100644
--- a/src/TestFramework/TestFramework.Extensions/buildTransitive/winui/MSTest.TestFramework.targets
+++ b/src/TestFramework/TestFramework.Extensions/buildTransitive/winui+uwp/MSTest.TestFramework.targets
@@ -3,7 +3,12 @@
<_TestFrameworkExtensionsRoot>$(MSBuildThisFileDirectory)../net6.0/winui/
-
+
+
+ <_TestFrameworkExtensionsRoot>$(MSBuildThisFileDirectory)../net9.0/uwp/
+
+
+
<_TestFrameworkExtensionsRoot>$(MSBuildThisFileDirectory)
diff --git a/src/TestFramework/TestFramework/TestFramework.csproj b/src/TestFramework/TestFramework/TestFramework.csproj
index 79ae688ade..5a7bd54160 100644
--- a/src/TestFramework/TestFramework/TestFramework.csproj
+++ b/src/TestFramework/TestFramework/TestFramework.csproj
@@ -29,7 +29,7 @@
- $(EnableIotAnalyzers)
+ $(EnableAotAnalyzers)