有没有办法让assemblyBinding-> bindingRedirect允许几个目标版本?

时间:2011-03-08 08:51:04

标签: c# .net reflection app-config signed-assembly

我正在签署.NET程序集地狱。

我有一个针对签名的程序集A,版本1.1( SA 1.1.1 )编译的应用程序。在某些系统上,我已经有 SA 1.1.2

是否可以在重定向中表达这一点?

SA 1.1.1 binds to SA 1.1.1 OR SA 1.1.2

只是为了提醒你这样的事情:

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="myAssembly"
                              publicKeyToken="32ab4ba45e0a69a1"
                              culture="neutral" />
            <bindingRedirect oldVersion="1.0.0.0"
                             newVersion="2.0.0.0"/>
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

1 个答案:

答案 0 :(得分:1)

<击>使用

<击>

oldVersion="1.0.0.0-2.0.0.0"

注意表示范围的短划线

对不起,以为你是反过来了。

我认为这不可能。

但是你可以做几件事。如果您在GAC中同时拥有这两个版本,则只需绑定到应用程序中所需的版本即可。即需要绑定到1.1.1的应用程序可以指定该版本。需要1.1.2的应用程序可以指定绑定。否则,我认为最安全的是针对所有应用程序针对1.1.1或1.1.2进行编译。

或者,最后但并非最不重要的是,取消签名并对未签名的版本进行编译,然后将获取具有您指定的“友好”名称的任何程序集。