.Net将请求的程序集重定向到不同的版本

时间:2011-09-12 12:35:53

标签: .net .net-4.0 code-access-security

我有一个版本1.0.0.0的程序集和一个2.0.0.0的新版本。两者都安装在我的GAC中。

目前,我可以使用“.NET Framework 2.0配置”工具中的“已配置的程序集”部分来强制将1.0的任何请求发送到我的服务器上的2.0程序集。这仍然与4.0框架相同,但我需要安装teh .Net 2.0 SP1来获得2.0配置工具。我相信你也可以用“Publisher Policies”做到这一点,但这些似乎有点麻烦,因为你必须创建一个serparate程序集来执行重定向。

对.Net 4.0中的安全模型进行的其他更改以及默认情况下尚未安装“.NET Framework 2.0配置”工具的事实,以及自2.0以来我想知道的更新; 是否还有其他更优选的方法来强制执行.Net程序集的某些请求版本的服务器范围重定向?

1 个答案:

答案 0 :(得分:1)

Jay你可以在app配置文件(web.config或app.config)或者机器配置中做你需要的。我个人不会安装.NET 2.0 SP1 来获取该配置工具。

这里有一个例子:Redirecting Assembly Versions

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="myAssembly"
          publicKeyToken="32ab4ba45e0a69a1"
          culture="en-us" />
        <!-- Assembly versions can be redirected in application, 
          publisher policy, or machine configuration files. -->
        <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
      <assemblyIdentity name="mySecondAssembly"
        publicKeyToken="32ab4ba45e0a69a1"
        culture="en-us" />
        <!-- Publisher policy can be set only in the application 
          configuration file. -->
        <publisherPolicy apply="no" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>