- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试连接 NHibernate 以将 Enyim.Memcached 提供程序用于其二级缓存。此外,我希望 Enyim.Memcached 使用 protobuf-net 作为它的序列化程序。
查看 nuget 和网络,我几乎可以找到我需要的所有部分:
核心:
protobuf-net.Enyim
protobuf-net
(protobuf-net.Enyim 的依赖)EnyimMemcached (Enyim.Caching)
v2.12 (依赖protobuf-net.Enyim)网页:(http://sourceforge.net/projects/nhcontrib/files/NHibernate.Caches/ -- 我找不到 NHibernate.Caches.EnyimMemcached 的 nuget 包)
NHibernate.Caches.EnyimMemcached
Enyim.Caching
v2.3但是,当我将所有内容连接起来时,我得到了一个The located assembly's manifest definition does not match the assembly reference.
错误。问题似乎是:
NHibernate.Caches.EnyimMemcached
想要 Enyim.Caching
v2.3protobuf-net.Enyim
想要 Enyim.Caching
v2.12他们玩得不好。我尝试添加程序集重定向,但无济于事:
<dependentAssembly>
<assemblyIdentity name="Enyim.Caching" publicKeyToken="cec98615db04012e" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.3.0.0" newVersion="2.3.0.0" />
</dependentAssembly>
“最新的”Enyim.Caching 程序集(通过 EnyimMemcached 包)只有 v2.12。
D'oh! 2.12 比 2.3 更新。 (感谢马克指出这一点!)
有什么想法吗?有没有我不知道的 NHibernate.Caches.EnyimMemcached nuget 包?或者使用 2.3 而不是 2.12 的 protobuf-net.Enyim?我无法想象我是唯一一个尝试使用这个 NHibernate-Enyim-Protobuf-net 堆栈的人。我很惊讶程序集绑定(bind)重定向没有解决这个问题。
更新:我很乐意听从 Marc 的建议。我只是下载了 NHibernate.Caches.EnyimMemcached 的源代码,并将其 Enyim.Caching 引用从未签名的 v2.3 程序集更改为已签名的 2.12 程序集。一切都是肉汁!
最佳答案
“只有 v2.12”——这让我愣了一下,但 2.12 比 2.3 更新得多; 2.7 是 2011 年 1 月; 2.12 是 2012 年 10 月。我似乎根本无法获得 2.3(即使通过命令行工具)。没有“只有 ... v2.12”这样的东西,因为在撰写本文时,v2.12 是最新版本。
不过,我可以建议的最简单的事情是尝试手动构建 protobuf 转码器,直接引用 NHibernate 使用的任何版本。
enyim 工具似乎有些...奇怪;在野外至少有 2 个不同的版本(具有不同的强名称 IIRC) - 它们甚至具有略微不同的接口(interface)( Int16
vs Int32
在一些地方,和 Flag
vs Flags
,从内存) . 可能 NHibernate 正在使用“其他”。我从 nuget 开始构建;但是 - 如果这是“错误”的,我很乐意重新评估。
编辑:
我从您的链接下载了 NHCH-3.2.0.GA-bin.zip,并使用了 sn -T <path>
检查公钥;这给出:
{path removed}\Enyim.Caching.dll does not represent a strongly named assembly
然后我尝试使用通过 Install-Package EnyimMemcached
从 nuget 下载的新版本,它给出:
Public key token is cec98615db04012e
所以基本上,在 2.3 和 2.12 之间的某个时间点,它开始使用强名称。
这意味着这些 dll 将始终具有根本不同的身份,并且永远无法互换。可悲的是,我对此无能为力。如果您无法更新 NH,则必须针对非强名称 dll 在本地构建 protobuf 工具。如果您在构建它时遇到与缺少成员相关的问题 Flags
,尝试将本地代码更改为 Flag
.
就我个人而言,添加、删除或更改公钥 token 值得进行“重大”修订更新——即升级到 3.0;因为这从根本上说是一个突破性的变化。
关于NHibernate.Caches.EnyimMemcached,protobuf-net.Enyim 想要 Enyim.Caching 的冲突版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14925607/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!