我只是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的发布者是否知道这个问题?
答案 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文件夹。