4

私は次のdll地獄を持っています:

  • ASP.Net プロジェクト
    • 参照 WebGrease
      • Antlr3.Runtime.dll 3.3.1.7705 を参照する [asp.net アプリの /bin/ フォルダーに保存]
    • 参照 カスタム プロジェクト
      • NCalc.codeplex.com を参照する
        • Antlr3.Runtime.dll 3.1.3.22795 を参照する [asp.net アプリの /bin/CustomProject/ フォルダーに保存]

当然のことながら、これら 2 つのバージョンの Antlr は連携してうまく動作せず、「見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません」というエラーが表示されます

WebGrease プロジェクトを変更したくありません。

NCalc プロジェクトをアップグレードして 3.3.1.7705 を使用しようとしていますが、これに苦労しています

これら 2 つの DLL を連携させる方法について何か提案はありますか?

残念ながら、 NCalcコードは新しいバージョンのantlrと互換性がないため、バインディングリダイレクトを使用できません

ありがとうございました

4

1 に答える 1

0

NCalc を提供すると、Antlr3.Runtime の新しいバージョンを使用できます。つまり、重大な変更はありません。バインディング リダイレクトを使用して、新しいバージョンをロードするように指示できます。

たとえば、web.configファイルのお尻のようなもの

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="NCalc" publicKeyToken="xxxxxxxxx" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.1.3.0" newVersion="3.3.1.0" />
      </dependentAssembly> 

    </assemblyBinding>
  </runtime>

バージョンの 4 桁目は使用されていないと思います

于 2013-06-28T14:33:16.043 に答える