我正在尝试重定向特定的.dll
,我们称之为MyAssembly.dll
。该程序集有两个版本:
MyAssembly.dll version 1.0.0.0
和
MyAssembly.dll version 1.1.0.0
我希望这两个程序集重定向到第三个版本:1.2.0.0
。
为此,我编写了这个.config
文件来构建要在GAC上应用的Publisher Policy
:
<?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 :(得分:1)
由于this文章,我必须为我的程序集的 MajorVersion.MinorVersion 的每个组合创建一个策略。所以我必须制定两个政策:
此解决方案有效,但如果有人知道更有效的方法,我将非常感激。