如何将第三方库添加到 UNO 平台 WebAssembly 项目
Posted
技术标签:
【中文标题】如何将第三方库添加到 UNO 平台 WebAssembly 项目【英文标题】:How to add third party libraries to a UNO platform WebAssembly project 【发布时间】:2020-06-25 11:30:14 【问题描述】:我创建了一个包含 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.GridSfDataGrid could not be found --->
System.InvalidOperationException: The type using:Syncfusion.UI.Xaml.GridSfDataGrid 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 社区工具包吗?
【问题讨论】:
【参考方案1】:是的,如果您想将 NuGet 包与 Uno 应用或库一起使用,则该包必须可用于您希望支持的所有平台(通常在 NuGet 页面上的 Dependencies
选项卡下可见)。在这种情况下,SyncFusion 控件尚不可用。
Windows 社区工具包可作为替代方案。 Uno 的最新稳定版本支持 WCT 中的 DataGrid
。请注意,对于 WebAssembly 和其他非 UWP 项目,您需要使用 WCT 的 Uno 编译版本,它们目前是单独的 NuGet 包:Uno.Microsoft.Toolkit
、Uno.Microsoft.Toolkit.Uwp.UI.Controls
等。
【讨论】:
感谢您的澄清。我想知道我是否可以使用 UWP 创建一个具有数据库访问和 API 使用的相当复杂的应用程序,然后使用 WCT 和 Entity Framework Core(或任何替代方案)将其移植到 WebAssembly。 Uno 有一个很大的承诺,但不知何故,它看起来仍然需要更多时间。 这里有一个在 Uno WebAssembly 中运行的 EntityFrameworkCore 示例:sqliteefcore-wasm.platform.uno,此处提供代码github.com/unoplatform/Uno.SQLitePCLRaw.Wasm 不幸的是,示例项目无法正常工作(请参阅此问题:github.com/unoplatform/Uno.SQLitePCLRaw.Wasm/issues/7),当我将 NuGet 添加到示例项目时,出现运行时错误:Error: System.TypeLoadException: VTable setup of type SQLitePCL.SQLite3Provider_WebAssembly failed
以上是关于如何将第三方库添加到 UNO 平台 WebAssembly 项目的主要内容,如果未能解决你的问题,请参考以下文章
如何将第三方 JavaScript 库添加到 Meteor 应用程序?
如果超过最大允许时间,如何取消将 ms office 文件转换为 PDF 的 Libreoffice UNO API 库过程
Proteus仿真Arduino UNO利用74LS148扩展中断
arduino UNO r3和arduino mega2560 用esp8266 01的WiFi模块可以接入百度天工物联网平台吗?