Skip to content

Conversation

@vb2ae
Copy link
Member

@vb2ae vb2ae commented Nov 17, 2025

This pull request updates versioning and package dependencies across multiple projects in the solution. The main changes include bumping the Nerdbank.GitVersioning package to a newer version and incrementing the project version numbers to 5.1-beta. Additionally, the WinUI3 project receives an update to its WindowsAppSDK dependency.

Versioning and package updates:

  • All project files now use Nerdbank.GitVersioning version 3.9.50 instead of 3.7.112 for consistent version management. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
  • The main version.json and platform-specific version.json files have been updated to set the version to 5.1-beta. [1] [2]
  • The WinUI3 project now references Microsoft.WindowsAppSDK version 1.8.251106002, up from a preview version, for improved compatibility and features.

Dependency management:

  • Added missing Microsoft.SourceLink.GitHub and Nerdbank.GitVersioning package references to the WinUI3 project for consistency.

This was linked to issues Nov 17, 2025
vb2ae added 13 commits November 17, 2025 17:14
Updated `Microsoft.NET.Test.Sdk` to version `18.0.1` and `xunit` to version `2.9.3` across multiple test projects. Upgraded `xunit.runner.visualstudio` to version `3.1.5` for compatibility with the latest `xunit`.

Aligned `Microsoft.Windows.SDK.BuildTools` in `Caliburn.Micro.WinUI3.csproj` to version `10.0.26100.6901`. Adjusted `<ItemGroup>` in `Caliburn.Micro.WinUI3.csproj` for better file organization.

Retained or updated other dependencies like `coverlet.msbuild`, `coverlet.collector`, `Moq`, and `Xunit.StaFact` to ensure compatibility with the updated test framework versions. Improved project configuration and dependency management.
vb2ae added 12 commits November 18, 2025 13:15
Updated the workflow to use 'dotnet msbuild' instead of 'msbuild' for various build and restore operations.
Introduced a new UWP project (`Caliburn.Micro.UWP`) with modern .NET features, including nullable reference types and AOT compatibility. Added a corresponding UWP test project.

Removed Xamarin.Forms projects and all associated Android, iOS, and shared files, indicating a migration away from Xamarin.Forms. Updated the solution file to reflect these changes.

Updated package versions for `System.Reactive`, `Autofac`, `FSharp.Core`, and others. Improved asynchronous handling in `App.xaml.cs`. Removed `global.json` to simplify SDK version management.

Refactored the codebase to remove Xamarin.Forms-specific logic and dependencies, focusing on UWP, WinUI, Avalonia, and MAUI platforms.
Update features.dotnet to use .net 10
{
var vmType = viewModel.GetType();
if (vmType.FullName == "Microsoft.Expression.DesignModel.InstanceBuilders.DesignInstanceExtension") {
if (vmType.FullName == "Microsoft.Expression.DesignModel.InstanceBuilders.DesignInstanceExtension")

Check warning

Code scanning / CodeQL

Erroneous class compare Warning

Erroneous class compare.

Copilot Autofix

AI 2 days ago

To fix the issue, replace the string-based comparison vmType.FullName == "Microsoft.Expression.DesignModel.InstanceBuilders.DesignInstanceExtension" with a type-based comparison using object.GetType() == typeof(...). This ensures the check relies on actual type identity rather than a fragile string which could break if the class is renamed or moved.

Steps:

  • Change line 226 in the file src/Caliburn.Micro.Platform/ViewModelBinder.cs from checking vmType.FullName == ... to vmType == typeof(Microsoft.Expression.DesignModel.InstanceBuilders.DesignInstanceExtension).
  • Add using Microsoft.Expression.DesignModel.InstanceBuilders; at the top of the file if it isn't already included, so that the DesignInstanceExtension type is available.
  • This requires no new methods or definitions, just a change to the comparison and possibly an import.
Suggested changeset 1
src/Caliburn.Micro.Platform/ViewModelBinder.cs

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/src/Caliburn.Micro.Platform/ViewModelBinder.cs b/src/Caliburn.Micro.Platform/ViewModelBinder.cs
--- a/src/Caliburn.Micro.Platform/ViewModelBinder.cs
+++ b/src/Caliburn.Micro.Platform/ViewModelBinder.cs
@@ -12,6 +12,8 @@
 #if MAUI
     using UIElement = global::Microsoft.Maui.Controls.Element;
     using FrameworkElement = global::Microsoft.Maui.Controls.VisualElement;
+#else
+    using Microsoft.Expression.DesignModel.InstanceBuilders;
     using DependencyProperty = global::Microsoft.Maui.Controls.BindableProperty;
     using DependencyObject = global::Microsoft.Maui.Controls.BindableObject;
 #elif WINDOWS_UWP
@@ -223,7 +225,7 @@
             if (View.InDesignMode)
             {
                 var vmType = viewModel.GetType();
-                if (vmType.FullName == "Microsoft.Expression.DesignModel.InstanceBuilders.DesignInstanceExtension")
+                if (vmType == typeof(DesignInstanceExtension))
                 {
                     var propInfo = vmType.GetProperty("Instance", BindingFlags.Instance | BindingFlags.NonPublic);
                     viewModel = propInfo.GetValue(viewModel, null);
EOF
@@ -12,6 +12,8 @@
#if MAUI
using UIElement = global::Microsoft.Maui.Controls.Element;
using FrameworkElement = global::Microsoft.Maui.Controls.VisualElement;
#else
using Microsoft.Expression.DesignModel.InstanceBuilders;
using DependencyProperty = global::Microsoft.Maui.Controls.BindableProperty;
using DependencyObject = global::Microsoft.Maui.Controls.BindableObject;
#elif WINDOWS_UWP
@@ -223,7 +225,7 @@
if (View.InDesignMode)
{
var vmType = viewModel.GetType();
if (vmType.FullName == "Microsoft.Expression.DesignModel.InstanceBuilders.DesignInstanceExtension")
if (vmType == typeof(DesignInstanceExtension))
{
var propInfo = vmType.GetProperty("Instance", BindingFlags.Instance | BindingFlags.NonPublic);
viewModel = propInfo.GetValue(viewModel, null);
Copilot is powered by AI and may make mistakes. Always verify output.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade nuget packages Update version number to 5.1

2 participants