2013-09-05 20 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

就是這樣設計的;你不會找到更有效的方法。 –