ServiceStack Redis客户端期望旧版本的ServiceStack.Common

时间:2011-12-29 10:46:08

标签: redis nuget-package servicestack

我只是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 packgage配置,并明确地做了一个NuGet ServiceStack.Common -Version 3.1.3并得到了它。但是当我尝试NuGet ServiceStack.Redis -Version 3.1.3时它会自动删除3.1.3版本的Common并下载3.1.6版本!!!

Arrrghhh,我讨厌聪明的安装人员。

我该如何解决这个问题?

ServiceStack的发布者是否知道这个问题?

2 个答案:

答案 0 :(得分:2)

好的!找到了问题。

我试图从控制台应用程序中使用ServiceStack,并将其配置为以“ClientProfile”模式构建。

ServiceStack在内部引用了在运行时无法访问的System.Web。

我使用完整的框架模式将Application切换到Build,现在一切正常。

非常感谢mythz!

答案 1 :(得分:0)

不,ServiceStack没有意识到这个问题。虽然我们想知道是什么导致了它。

我尝试了全新安装的ServiceStack.Redis,它按预期工作。

要删除dll,您需要进入NuGet包管理器并找到已安装的ServiceStack.Redis包并单击卸载。这应确保项目的下一次安装从NuGet网站下载并且不会重新使用脏dll缓存。

如果失败,请确保您拥有最新版本的NuGet,并清除旧的NuGet缓存。即查找并删除NuGet / packages文件夹。