1

NuGetted ServiceStack.Redis 3.1.3 だけですが、依存関係として ServiceStack.Common および ServiceStack.Text 3.1.6 も取得します。

アプリケーションをビルドすると、すべて問題ありません。

しかし、アプリケーションを実行すると、いくつかの Redis クライアント メソッドは正しく実行されますが、一部のメソッド (RedisClient.GetAllKeys) は例外をスローします。

Could not load file or assembly 'ServiceStack.Common, Version=1.0.4336.27526, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

次に、すべての dll と nuget パッケージ構成を削除し、NuGet ServiceStack.Common -Version 3.1.3 を明示的に実行して取得しました。しかし、NuGet ServiceStack.Redis -Version 3.1.3 を実行しようとすると、Common の 3.1.3 バージョンが自動的に削除され、3.1.6 バージョンがダウンロードされました!!!

Arrrghhh、私はインテリジェントなインストーラーが嫌いです。

これを修正するにはどうすればよいですか?

ServiceStack の発行者は、この問題についても知っていますか??

4

2 に答える 2

2

Ok !問題が見つかりました。

コンソール アプリケーションから ServiceStack を使用しようとしましたが、「ClientProfile」モードでビルドするように構成されていました。

ServiceStack は、実行時にアクセスできなかった System.Web を内部的に参照します。

完全なフレームワーク モードを使用してアプリケーションをビルドに切り替えたところ、すべて正常に動作するようになりました。

とにかくありがとう!

于 2012-01-04T10:56:15.900 に答える
0

いいえ、ServiceStackはこの問題を認識していませんでした。何が原因なのか知りたいのですが。

ServiceStack.Redisの新規インストールを試しましたが、期待どおりに機能します。

dllを削除するには、NuGetパッケージマネージャーに移動し、インストールされているServiceStack.Redisパッケージを見つけて、[アンインストール]をクリックする必要があります。これにより、プロジェクトの次のインストールでNuGet Webサイトからプロジェクトがダウンロードされ、ダーティなdllキャッシュが再利用されなくなります。

これに失敗すると、最新バージョンのNuGetが使用され、古いNuGetキャッシュがクリアされます。つまり、NuGet/packagesフォルダーを見つけて削除します。

于 2011-12-29T16:57:59.650 に答える