首页 > 解决方案 > 如何将第三方库添加到 UNO 平台 WebAssembly 项目

问题描述

我创建了一个包含 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\1\s\src\SourceGenerators\Uno.UI.SourceGenerators\XamlGenerator\XamlFileGenerator.Reflection.cs, line: 722

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

标签: c#uno-platform

解决方案


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

Windows Community Toolkit 可作为替代方案。DataGrid最新的 Uno 稳定版本支持 in WCT 。注意对于 WebAssembly 和其他非 UWP 项目,您需要使用 WCT 的 Uno 编译版本,它们当前是单独的 NuGet 包:Uno.Microsoft.ToolkitUno.Microsoft.Toolkit.Uwp.UI.Controls等。


推荐阅读