链接.net 4中的错误

时间:2011-10-21 14:58:11

标签: protobuf-net

我正在尝试从我的.net 4项目中运行protobuf-net v2。

我从.net3目录中获取了dll并将其放入我的项目中,但现在我得到了:

无法加载文件或程序集'protobuf-net,Version = 2.0.0.450,Culture = neutral,PublicKeyToken = 257b51d87d2e4d67'或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)

我尝试将此添加到我的web.config:

  <runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="protobuf-net" publicKeyToken="257b51d87d2e4d67" culture="neutral" />
    <bindingRedirect oldVersion="2.0.0.450" newVersion="4.0.0.0" />
  </dependentAssembly>
</assemblyBinding>

但没有去。有什么提示吗?

1 个答案:

答案 0 :(得分:1)

在大多数情况下,根本不需要任何装配绑定。如果您在找不到之前的版本时遇到错误,那么您可以添加从1.0.0.278到2.0.0.450的绑定(例如;使用实际版本号)。

绑定 4.0.0.0不正确;你已经在使用正确的组件了。 2.0 dll和3.0 dll之间的唯一区别是公共接口上的一些与WCF相关的API。没有特定的4.0 dll,因为4.0没有引入任何影响此库的新API功能。因此,net30文件夹中的dll绝对适用于.net 4.0。

如果您使用nuget包(从r452开始),它将自动为您的项目选择合适的dll。