2013-09-05 21 views
1

我试图重定向一个特定的.dll,我们将其称为MyAssembly.dll。该组件有两个版本:几个.dll的GAC程序集重定向

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

回答

0

由于this文章,我不得不创建一个政策为我组装的MAJORVERSION.MINORVERSION每个组合。所以我不得不创建两个策略:

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

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

+0

就是这样设计的;你不会找到更有效的方法。 –