2016-08-23 4 views
0

私はC#で書かれたSDKをWin10のUWPアプリケーションに使用しています。 これはSQLiteを使用しており、C#クライアントアプリケーション上で完全に動作します。SQLiteを従属ライブラリとして使用するSDKのWinmdビルド

しかし、C++/javascriptアプリケーションでSQLiteの依存関係を持つSDKを使用することはできますか? UWPアプリケーションはC#/ C++/javascript/Visual basicにすることができるので、SDKがUWP互換でなければならない場合は、winmd(Windowsランタイムコンポーネントビルド)が必要になります。

これをmsdnフォーラムに掲載しました。彼らは、それが動作するためにはすべてのサードパーティの依存関係にWindowsランタイムコンポーネントが必要だと言います。 既にラッパープロジェクトとラッパーwinmd buildを試してみましたが、動作しません。 SQLiteライブラリのwinmdビルドが見つかりません。

ここで何ができるかお教えください。 本当にありがとうございます。

+0

[SQLite for Windowsランタイム](https://visualstudiogallery.msdn.microsoft.com/23f6c55a-4909-4b1f-80b1-25792b11639e)は、Windowsランタイムコンポーネントで動作するものですか? –

+0

@AndreyAshikhmin:私が見つけることができるすべての例はC#で書かれています。 C++でこれを使用する例はありません。 また、SQLiteには "Universal Windows Platform用のSQLite"と呼ばれるユニバーサルWindows用の新しいライブラリがあり、これを使用することをお勧めします。 これらのいずれかを使用する方法を見つける。 –

+1

Universal Windowsプラットフォーム用のSQLiteは、通常のC#UWPプロジェクトでのみ動作しますが、言語間でライブラリを動作させるためには、Windowsランタイムコンポーネントでなければなりません。また、Windowsランタイムコンポーネントには、SQLite for Windows Runtimeという特別なバージョンのSQLiteがあります。このバージョンを使用してWinRTコンポーネントを作成する場合は、必要に応じて動作すると考えられます。 –

答えて

0

私はこのプロジェクトの仕事をするために様々なアプローチを試してみましたが、以下にいくつかの成功を見つけました: 以下は、私が依存関係を持つに沿って作られたプロジェクトの構造である:(C++で)

クライアントアプリケーション:

  1. ラッパーwinmdライブラリー。 (C#の場合)

ラッパーwinmdライブラリー:(私はこのプロジェクトからwinmd成分を発生)

  1. マイSDKプロジェクト

マイSDKプロジェクト(C#の場合):

  1. SQLite Net。

  2. SQLite Net Async。

  3. Newtonsoft JSON。私は、クライアント・アプリケーションを構築する場合

、私はwrapperlibrary.winmdファイルを取得するが、私は、出力ディレクトリ(SQLiteのとNewtonsoft)で、サードパーティの依存関係から、対応するDLLを取得いけません。だから私は手動で必要なDLLをC++アプリケーションの出力ディレクトリにコピーしました。今それは正しく動作するようだ、私はサードパーティライブラリと私のC#コードの正しい使用法を検証することができます。現在、私はセットアップ作業をpocとして行い、後でパッケージングについて心配しています。 私が直面している問題は、SDKにもUI要素がいくつかあることです。これは基本的にコンパイルされたXAMLの.xbfファイルです。

私は他のスレッドでこの質問をしましたが、ここではメイントピックを外さないようにしています。

0

しかし、C++/javascriptアプリケーションでは、自分のSDKをSQLite依存関係で使用できますか?

はい、msdnフォーラムのように、WinRTコンポーネントのユニバーサルアプリケーションでラッパーする必要があります。

すでにラッパープロジェクトとラッパーwinmdビルドを試したことがありますが、動作しません。

あなたがブロックするのはわかりませんが、Writing a SQLite wrapper component for universal Windows appsを参照してください。詳細な手順があります。見本があります。

+0

私は、SDKプロジェクトでSQLite Net PCL、SQLite Net Async、およびNewtonSoft JSONライブラリを使用しています。これらのライブラリはC#にあります。 SQLiteライブラリはORM機能を提供していますが、カスタム解析で生のsqlsを使用することを提案したラッパーを使用しています。 これらのライブラリ用のラッパーWinRTビルドを作成しても、クライアントC++アプリケーションでこれらのライブラリの実際のDLLをどのように含めることができますか? C++ UWPアプリケーションでは、これらのdllへの参照を追加することはできませんが、ラッパーwinrtビルドを含めることができます。 –

関連する問題