1

我正在尝试重定向一个特定.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

4

1 回答 1

1

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

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

该解决方案有效,但如果有人知道更有效的方法来做到这一点,我将不胜感激。

于 2013-09-10T17:01:14.523 回答