我使用 C# 创建了一个 Visual Studio(社区 2019)项目,使用ServiceStack.Redis. 由于它是 C#,我使用 Windows 10(Windows 有一个 Redis 版本,但它真的很旧,据我所知,它是非官方的,所以我担心这可能是问题所在)。这是我的代码的摘录:
public class PeopleStorage: IDisposable
{
public PeopleStorage()
{
redisManager = new RedisManagerPool("localhost");
redis = (RedisClient)redisManager.GetClient();
facts = (RedisTypedClient<List<Fact>>)redis.As<List<Fact>>();
}
public List<Fact> GetFacts(int id)
{
string sid = id.ToString();
if (facts.ContainsKey(sid))
return facts[sid];
return accessor.GetFacts(id);
}
private RedisTypedClient<List<Fact>> facts;
private RedisClient redis;
private RedisManagerPool redisManager;
}
Run Code Online (Sandbox Code Playgroud)
在尝试连接到 Redis 时return facts[sid];,出现异常:
System.IO.FileLoadException:“无法加载文件或程序集“System.Runtime.CompilerServices.Unsafe,Version=4.0.4.1,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。找到的程序集的清单定义不匹配程序集参考。(来自 HRESULT 的异常:0x80131040)”
(可能是我翻译的不准确)
我尝试更新所有包,从ServiceStack包开始,以System.Runtime.CompilerServices.Unsafe自身结束。而且,你不能在 NuGet 中选择 4.0.4.1 版本,最接近的是 4.0.0,而相关的是 …
我在C#中有几个.NET应用程序,以及一个用于访问数据库的API.我想将所有版本的API放在数据库中,让他们选择最高版本和内部版本号,但要坚持使用它们构建的主要和次要编号.基本上,当我引用API时,1.2.3.4我希望引用读取,1.2.*.*以便应用程序只需要提取,1.2.3.5我看到我可以使用XML配置文件执行此操作.我宁愿让它遵守.类似于发布策略,但没有额外的文件.我可以满足于此.另一个问题是我看到的所有解决方案都将一个版本重定向到另一个特定版本,而不仅仅是更新版本.
我该怎么做呢?
有人能指出我对出版商政策的信息来源吗?