1

在使用 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 中描述的解决方案,抱怨强名称验证无法通过使用 ns.exe 删除强名称要求。但它没有锻炼。

任何人都可以帮助我吗?

4

2 回答 2

1

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

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

于 2012-10-18T06:35:32.357 回答
0

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

<!-- 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> -->
于 2015-02-10T06:12:37.747 回答