使用 SQLite 作为依赖库的 SDK 的 Winmd 构建

Winmd build for a SDK using SQLite as a dependent library

我有一个用 C# 编写的针对 Win10 UWP 应用程序的 SDK。 它使用 SQLite 并在 C# 客户端应用程序上完美运行。

但是 C++/javascript 应用程序可以将我的 SDK 与 SQLite 依赖项一起使用吗? 如果 SDK 必须与 UWP 兼容,则需要 winmd(windows 运行时组件构建),因为 UWP 应用程序可以使用 C#/C++/javascript/Visual basic。

我已经在 msdn 论坛上发布了这个,他们说我需要一个 windows 运行时组件来处理所有第 3 方依赖项才能正常工作。 已经尝试过 wrapper projects 和 wrapper winmd build,它不起作用。 我无法为 SQLite 库找到任何 winmd 版本。

请告知这里可以做什么。 非常感谢任何帮助。

But can a C++/javascript app use my SDK with the SQLite dependency?

是的,正如 msdn 论坛中所说,您将需要在 WinRT 组件通用应用程序中进行包装。

Have already tried wrapper projects and wrapper winmd build, it does not work.

不知道是什么阻碍了你,但你可以参考Writing a SQLite wrapper component for universal Windows apps,里面有详细的步骤你需要遵循,还有示例你可以看看。

我尝试了各种方法来使这个项目发挥作用,并在以下方面取得了一些成功: 以下是我与依赖项一起制作的项目结构:

客户端应用程序(C++):

  1. 包装 winmd 库。

Wrapper winmd 库(在 C# 中):(我从该项目生成一个 winmd 组件)

  1. 我的SDK项目

我的 SDK 项目(C#):

  1. SQLite 网络。

  2. SQLite 网络异步。

  3. Newtonsoft JSON.

当我构建客户端应用程序时,我得到了 wrapperlibrary.winmd 文件,但我没有从输出目录(SQLite 和 Newtonsoft)中的第 3 方依赖项中得到相应的 dll。所以我手动将所需的 dll 复制到 C++ 应用程序的输出目录。现在它似乎工作正常,我可以验证第 3 方库和我的 C# 代码的正确使用。目前我只是想让设置作为一个 poc 工作,稍后再担心打包。 我现在面临的问题是我的 SDK 也有一些 UI 元素,所以基本上是为我拥有的 "XAML" 编译的 .xbf 文件。

我已经在另一个帖子中问过这个问题,以免偏离主题。