0

次のように app.config で v2.0.0.0 から v3.5.0.0 にリダイレクトする必要がある依存関係を持つアセンブリをロードするスクリプトを実行するために、ironruby を使用しています。

<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 を変更する必要があり、すべてのスクリプトに適用されます。次のいずれかを行う必要があります。

  • このリダイレクトを単一のスクリプトに対して定義します
  • 問題のあるアセンブリを要求する前にリダイレクトを登録するコードを実行する

どのように?

4

2 に答える 2

1

app.config私が書いた というハックを使えば、IronRuby の変更を避けることができますconfiguration_settings_hackery.rb。それについては私のブログで読むことができます。ブログ投稿には、github の要点へのリンクが含まれています。

私はこのハックを毎日使用しており、多くの成功を収めています。ファイルの最後の行を変更しconfiguration_settings_hackery.rbて、 の場所を指すようにする必要がありますapp.config。私が投稿したバージョンはc:\app.config.

于 2010-02-18T22:16:13.863 に答える
0

AppDomainSetup.ConfigurationFileを特別に設定して新しいものを作成しAppDomain、その中でスクリプトを実行してみます。app.configAppDomain

于 2010-01-16T22:07:25.503 に答える