【问题标题】:GAC Assembly redirection for several .dlls多个 .dll 的 GAC 程序集重定向
【发布时间】:2013-09-09 10:21:34
【问题描述】:

我正在尝试重定向特定的.dll,我们称之为MyAssembly.dll。此程序集有两个版本:

MyAssembly.dll version 1.0.0.0

MyAssembly.dll version 1.1.0.0

我希望这两个程序集重定向到它的第三个版本:1.2.0.0。 为此,我编写了这个.config 文件来构建Publisher Policy 以应用于GAC:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
            <assemblyIdentity name="MyAssembly" publicKeyToken="myPublicKeyToken" />
        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.2.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

有了这个,我创建了适当的.config 文件来生成策略。但是当我想创建Policy 时,我的问题就来了。

下一步之前的注意事项:程序集版本控制的工作方式如下:

<major version>.<minor version>.<build number>.<revision>

我第一次想创建策略时,我意识到,如果我要重定向的程序集版本是:1.0.0.0 我必须创建一个匹配的策略,如下所示:

Policy.<majorversion>.<minorversion>.<AssemblyName>.dll

有了这个,我可以将任何 MyAssembly.dll 从 1.0.* 重定向到 1.1 版。

但是,如果我想重定向多个程序集,我该如何生成该策略,就像我在上面解释的那样?我的保单应该是什么样子?

如果我有两个程序集:

1.0.0.0 - 1.1.0.0

如何构建PublisherPolicy

【问题讨论】:

    标签: gac policy gacutil global-assembly-cache publisher-policy


    【解决方案1】:

    由于this 文章,我必须为我的程序集的每个MajorVersion.MinorVersion 组合创建一个策略。所以我必须创建两个策略:

    • 能够从 1.0.0.0 重定向到 1.2.0.0
    • 另一个从 1.1.0.0 重定向到 1.2.0.0

    此解决方案有效,但如果有人知道更有效的方法,我将不胜感激。

    【讨论】:

    • 设计就是这样;你不会找到更有效的方法。
    猜你喜欢
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多