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

行 !发现问题。

我试图从控制台应用程序中使用 ServiceStack,它被配置为在“ClientProfile”模式下构建。

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

I switched the Application to Build using the full framework mode and everything works ok now.

Thanks anyways mythz !

于 2012-01-04T10:56:15.900 回答
0

不,ServiceStack 不知道这个问题。虽然我们想知道是什么原因造成的。

我已经尝试过全新安装 ServiceStack.Redis,它按预期工作。

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

未能确保您拥有最新版本的 NuGet 并且您的旧 NuGet 缓存已被清除。即找到并删除 NuGet /packages 文件夹。

于 2011-12-29T16:57:59.650 回答