Xamarin.UWP 应用未启动,因为 'Microsoft.Graphics.Canvas.UI.Xaml.CanvasImageSource' 无法加载

Xamarin.UWP app doesn't start because 'Microsoft.Graphics.Canvas.UI.Xaml.CanvasImageSource' could not be loaded

我正在开发 Android/iOS/UWP Xamarin.Forms 应用程序。过去几周我主要在 Android/iOS 应用程序上工作。现在,我想在 UWP 中再次启动我的应用程序并收到错误:

System.TypeLoadException
  HResult=0x80131522
  Message=Could not find Windows Runtime type 'Microsoft.Graphics.Canvas.UI.Xaml.CanvasImageSource'.
  Source=Xamarin.Forms.Platform.UAP
  StackTrace:
   at Xamarin.Forms.Platform.UWP.ImageRenderer.GetDesiredSize(Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.Platform.UWP.Platform.GetNativeSize(VisualElement element, Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.Platform.UWP.WindowsBasePlatformServices.GetNativeSize(VisualElement view, Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.VisualElement.OnSizeRequest(Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.Image.OnSizeRequest(Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.VisualElement.OnMeasure(Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.VisualElement.GetSizeRequest(Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.VisualElement.Measure(Double widthConstraint, Double heightConstraint, MeasureFlags flags)
   at Xamarin.Forms.StackLayout.CalculateNaiveLayout(LayoutInformation layout, StackOrientation orientation, Double x, Double y, Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.StackLayout.CalculateLayout(LayoutInformation layout, Double x, Double y, Double widthConstraint, Double heightConstraint, Boolean processExpanders)
   at Xamarin.Forms.StackLayout.OnSizeRequest(Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.VisualElement.OnMeasure(Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.VisualElement.GetSizeRequest(Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.Layout.GetSizeRequest(Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.VisualElement.Measure(Double widthConstraint, Double heightConstraint, MeasureFlags flags)
   at Xamarin.Forms.ScrollView.OnSizeRequest(Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.VisualElement.OnMeasure(Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.VisualElement.GetSizeRequest(Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.Layout.GetSizeRequest(Double widthConstraint, Double heightConstraint)
   at Xamarin.Forms.VisualElement.Measure(Double widthConstraint, Double heightConstraint, MeasureFlags flags)
   at Xamarin.Forms.Layout.LayoutChildIntoBoundingRegion(VisualElement child, Rectangle region)
   at Xamarin.Forms.Page.LayoutChildren(Double x, Double y, Double width, Double height)
   at Xamarin.Forms.Page.UpdateChildrenLayout()
   at Xamarin.Forms.Page.OnSizeAllocated(Double width, Double height)
   at RA_Krypt.MainPage.OnSizeAllocated(Double width, Double height) in C:\Users\Christian\source\repos\Xamarin_RaKrypt\RA-Krypt\RA-Krypt\MainPage.xaml.cs:line 27
   at Xamarin.Forms.Page.OnChildMeasureInvalidated(VisualElement child, InvalidationTrigger trigger)
   at Xamarin.Forms.Page.OnChildMeasureInvalidated(Object sender, EventArgs e)
   at Xamarin.Forms.VisualElement.InvalidateMeasureInternal(InvalidationTrigger trigger)
   at Xamarin.Forms.VisualElement.set_IsNativeStateConsistent(Boolean value)
   at Xamarin.Forms.Platform.UWP.VisualElementRenderer`2.OnControlLoaded(Object sender, RoutedEventArgs args)

我的应用程序根本无法启动。我重建了我的项目并重新启动了我的计算机,这有时对 Xamarin 有帮助,但我仍然卡住了。我需要做什么才能让我的应用程序再次运行?

此错误已报告并修复,请参阅 this issue on GitHub。该修复程序将包含在即将发布的 Xamarin.Forms 中。

目前有解决方法。确保安装了最新版本的 Xamarin.Forms。那么:

如果需要支持 Fall Creators Update (SDK 16299)

  1. 确保项目的最低版本至少设置为 Fall Creators Update (16299)
  2. 从 NuGet 安装 Win2D.uwp 包到你的 UWP 项目
  3. <DisableWin2DPlatformCheck>true</DisableWin2DPlatformCheck> 添加到 UWP 项目的 csproj

如果你能支持最小版本SDK 17134

  1. 将 UWP 项目的最低版本设置为 17134 或更高版本
  2. 从 NuGet 安装 Win2D.uwp 包到你的 UWP 项目