无法解析Enyim.Caching的依赖关系

时间:2012-10-16 17:19:49

标签: c# couchbase enyim enyim.caching

我在使用Couchbase客户端时解决了对Enyim.Caching.dll的依赖性问题。我已经通过NuGet下载了dll并在项目中引用了它们。使用下载的程序集Enyim.Caching,Version = 2.12.0.0,Culture = neutral,PublicKeyToken = 05e9c6b5a9ec94c2 ,该解决方案可以很好地编译。但在运行时,Couchbase会抛出一个异常,因为它正在寻找Enyim.Caching,Version = 2.12.0.0,Culture = neutral,PublicKeyToken = cec98615db04012e

我无法理解为什么它需要另一个相同版本的dll,但需要另一个PublicKey。

我还尝试了Cant get the couchbase .net memcache client to run, complains it's strong name validation failed中描述的解决方案,通过使用ns.exe来删除强名称要求。但它没有锻炼。

anoyone可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

最后,我设法使用couchbase-net-client项目的Readme.mdown文件中的描述解决了这个问题。他们说有两种方法可以解决问题:要么通过sn.exe删除强名称检查,要么删除程序集签名。

我选择了第二种方式,因为我不需要汇编签名。我从头开始重建源代码,删除了NuGet为我创建的每个条目,并手动添加了对所有程序集的引用。它就像一个魅力:)

答案 1 :(得分:0)

您可以使用" public_key.snk"删除节点在文件" build / CommonProperties.targets"

<!-- delay sign the assembly if the PrivateKeyPath property is not specified -->
<!--<PropertyGroup Condition=" '$(PrivateKeyPath)' == '' And '$(PrivateKeyName)' == ''">
    <AssemblyOriginatorKeyFile>..\public_key.snk</AssemblyOriginatorKeyFile>
    <DelaySign>true</DelaySign>
</PropertyGroup> -->