如何将第三方库添加到 UNO 平台 WebAssembly 项目

How to add third party libraries to a UNO platform WebAssembly project

我创建了一个包含 WebAssembly 项目的 UNO 平台 .NET 解决方案。我打算添加一些第三方组件,所以我将他们的 UWP NuGet 包添加到 UPW 项目中。

不幸的是,当我构建时,我在 WebAssembly 项目中遇到以下错误:

System.InvalidOperationException: An error occurred when processing Grid at line 103:4
(D:\UnoTesting\UnoTesting.Shared\MainPage.xaml) : 
The type {using:Syncfusion.UI.Xaml.Grid}SfDataGrid could not be found --->
System.InvalidOperationException: The type {using:Syncfusion.UI.Xaml.Grid}SfDataGrid could not be found
   at : Uno.UI.SourceGenerators.XamlGenerator.XamlFileGenerator.GetType(XamlType type) at:
   D:\a\s\src\SourceGenerators\Uno.UI.SourceGenerators\XamlGenerator\XamlFileGenerator.Reflection.cs, line: 722

所以当我尝试使用一个库时,它必须为每个平台(Android、macOS、WebAssembly)提供可用的 NuGet 包?如果没有软件包,那么我应该使用 Windows 社区工具包?

是的,如果您想将 NuGet 包与 Uno 应用程序或库一起使用,则该包必须可用于您希望支持的所有平台(通常在 NuGet 的 Dependencies 选项卡下可见页)。在这种情况下,SyncFusion 控件尚不可用。

Windows 社区工具包可作为替代品使用。 Uno 的最新稳定版本支持 WCT 中的 DataGrid。注意 WebAssembly 和其他非 UWP 项目,您需要使用 Uno 编译版本的 WCT,它们目前是单独的 NuGet 包:Uno.Microsoft.ToolkitUno.Microsoft.Toolkit.Uwp.UI.Controls