代码中的程序集重定向而不是app.config

时间:2010-01-14 23:46:43

标签: .net ironpython ironruby

我正在使用ironruby来执行一个脚本,该脚本加载一个具有依赖关系的程序集,需要从app.config中的v2.0.0.0重定向到v3.5.0.0,如下所示:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="3.5.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.CompactFramework.Build.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="9.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Build.Engine" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="3.5.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
</runtime> 

该脚本适用于此重定向,但这需要我始终更改ironruby app.config,它适用于所有脚本。 我需要:

  • 为单个脚本定义此重定向
  • 执行在需要有问题的程序集之前注册重定向的代码

如何?

2 个答案:

答案 0 :(得分:1)

您可以通过使用我编写的名为app.config的黑客来避免更改IronRuby configuration_settings_hackery.rb。您可以在我的博客上read about it。博客文章包含指向github上的要点的链接。

我每天都使用这个黑客,而且我已经取得了很大的成功。您需要更改configuration_settings_hackery.rb文件的最后一行,以指向app.config的位置。我发布的版本只查找c:\app.config

答案 1 :(得分:0)

我会尝试创建一个新的AppDomainAppDomainSetup.ConfigurationFile设置为您的特殊app.config,然后在AppDomain中运行您的脚本。