2

私は自分のMacで例のクローンを作成しましたが、ゲートのすぐ外に、ビルドされないプロジェクトがいくつかあります。具体的には、MovieRestの例を作成しようとすると、次のエラーが発生します。

エラーCS0584:内部コンパイラエラー:タイプServiceStack.OrmLite.Sqlite.SqliteOrmLiteDialectProvider' fromServiceStack.OrmLite.SqliteNET、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = null'(CS0584)(ServiceStack.MovieRest)をインポートできませんでした

MacでServiceStackを使い始める際のヘルプや例は見つかりません。これは、概要のプレゼンテーションでMonoDevelopを使用するのが非常に難しいため、非常に奇妙だと思います。

4

1 に答える 1

2

サンプルプロジェクトはNuGetパッケージを参照するようにアップグレードされましたが、MovieRestプロジェクトはServiceStack.OrmLite.Sqlite.Mono NuGetパッケージを参照していませんでした(同期がとれていませんでした)。これを実行して、チェックインしました。

ここでVS.NET2012を使用してこれを行ったため、VS.NETソリューションファイルもアップグレードされたため、ベータチャネルで最新のMonoDevelop(3.1.1)を開く必要があります。

注:すべてのサンプルプロジェクトはVS.NETで開発されましたが、Hetzner Ubuntu vServerであるservicestack.netでホストされている場合、Mono/Linuxにデプロイされます。Linux / MonoホストでServiceStackベースのソフトウェアを実行する場合ほど、MonoDevelopでの開発には関心がありません。理想的には両方を実行する必要がありますが、主にVS.NETで開発しているため、MonoDevelopに対して常にテストを行っているわけではありません。

WindowsとMono+Linux/OSXのSqlite

SqliteはアンマネージドネイティブCライブラリであり、他の.NETとは異なり、複数のプラットフォームで同じバイナリを実行することはできません。

Windowsで.NETを使用する場合、ServiceStack.OrmLite.SqliteパッケージMono.Data.Sqlite.dllはWindows / .NETの場合はアンマネージsqlite3.dllインbin/フォルダーを使用することを参照します(そのため、sqlite.dllは、[新しい場合はコピー]に設定されたコンテンツリソースとして設定する必要があります)。Linuxの場合はsqlite3.soを検索し、OSXの場合はライブラリルックアップパスでlibsqlite3.dylibを検索します。ホストOSにSqliteがインストールされている場合は、これらが自動的に検出されます。インストールされていない場合は、これらの共有ライブラリへのパスをLD_LIBRARY_PATH環境変数に含める必要があります。

于 2012-12-21T04:41:08.150 に答える