【问题标题】:are assembly bindings ignored for PublicKeyToken=null?PublicKeyToken=null 是否忽略程序集绑定?
【发布时间】:2016-12-01 16:26:30
【问题描述】:

我的app.config 中有以下内容。

<configuration>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <probing privatePath="bin2" />
    <dependentAssembly>
      <assemblyIdentity name="Foo" culture="neutral" publicKeyToken="null">
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.4497.27619" />
      </assemblyIdentity>
    </dependentAssembly>
  </assemblyBinding>
  ...
<configuration>

Fusion 日志记录告诉我它没有在 bin2 中查找我的程序集。

LOG:Initial PrivatePath = NULL(它从不搜索 bin/Debug/bin2/Foo

这是没有publicKeyToken 的问题吗?

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    是的,对于非强命名(具有 publicKeyToken)的程序集,它们会被忽略,因为 CLR 会忽略这些程序集的版本号。

    更多信息请参见this MSDN page

    【讨论】:

    • 页面上的具体注释说:“您不能重定向非强名称程序集的版本。公共语言运行时会忽略非强名称程序集的版本。”
    • @JJS:对于 .NET 4.5,该注释不存在。不过,尚不清楚行为是否发生了变化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    相关资源
    最近更新 更多