2011-12-29 75 views
1
的旧版本

我只是NuGetted ServiceStack.Redis 3.1.3但它的依赖也变得ServiceStack.Common和ServiceStack.Text 3.1.6ServiceStack Redis的客户期待ServiceStack.Common

现在,当我构建应用程序的一切没问题。

但是,当我运行应用程序时,一些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

好的!发现问题。

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

ServiceStack在内部引用System.Web,它在运行时不可访问。

我将应用程序切换到使用完整框架模式的构建,现在一切正常。

谢谢反正神话!

0

不,ServiceStack没有意识到这个问题。虽然我们想知道是什么造成的。

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

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

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