3

redis/mono 通信をテストするコンソール アプリを作成しようとしています。Monodevelop 4.0 (Xamarin Studios) + Nuget Port を使用して、mac os で ServiceStack.Redis を操作するためにレンガの壁にぶつかっています。

私がオンラインで見つけたすべてのソリューションは、ビジュアルスタジオで「.Net 4.0 Client Profile」を「.Net 4.0 full」に変更するだけです。そのようなオプションが存在するかどうかさえわかりません。だからそこに助けはありません。

私が得ているエラーは次のとおりです。

「型または名前空間名 `RedisClient' が見つかりませんでした。using ディレクティブまたはアセンブリ参照がありませんか?」

以下のスクリーン キャプチャは、参照フォルダーに明確にあるにもかかわらず、欠落している参照を示しています :(。非常に不可解です。

誰かが同様の問題を抱えていましたか?どんな助けでも大歓迎です。

アセンブリと参照のスクリーン キャップ

4

3 に答える 3

2

これは一般的に、 Monoのバージョン番号が遅れている問題だと思います。

たとえば、問題を再現できる例を次に示します。

  • あなたServiceStack.Redisはに対してコンパイルされServiceStack.Interfaces -> 3.9.45ます。
  • しかし、実際には次の最新の3.9.48バージョンをプルしました。

    ServiceStack.Interfaces 3.9.48

    ServiceStack.Common 3.9.48

    ServiceStack.Text 3.9.48

Monoでは、古いServiceStack参照を3.9.45から3.9.48に転送する際に問題が発生します。

したがって、ソースから再コンパイルすると問題が解決します。

または、すべてのServiceStack.*.dllを開いて(既に行ったように)、すべての参照が同じバージョン番号を使用していることを確認し、遅れのあるバージョン番号の参照がないことを確認します。

ServiceStack.Redis

同様に、のヘッドバージョンが3.9.48の場合、 Monoでさまざまなs につながるパッケージServiceStack.Logging.NLogに対してコンパイルする際に問題がありました。3.9.44TypeLoadExceptionServiceStack.*

于 2013-05-30T19:07:02.603 に答える
1

そのため、MonoDevelop IDE と nuget との戦いで髪が引き裂かれました。MonoDevelop でソースから Servicestack.redis をビルドし、出力 DLL をコピーしました。これは問題なく動作しました。

monodevelop が nuget の Dll を気に入らないか、nuget ポートに DLL 参照に関するバグがあるようです。いずれにせよ、詳細はわかりませんが、MonoDevelop でソースからサービススタック コンポーネントをビルドすることで解決策があります。

于 2013-05-28T15:35:14.790 に答える