Autodesk Inventor 用のアドインを開発しています。当社のソフトウェアは、実行時に Inventor にロードされる一連の dll アセンブリです。ログ記録と例外処理に Microsoft Enterprise Library 5.0 を使用することにしました。
Inventor 2013 が Enterprise Library 4.1 を使用していることが判明したため、問題が発生しました。Inventor の Bin ディレクトリに古いバージョンが既にあるため、アドインをロードするときに、適切なバージョンのアセンブリをロードできません。
これまでに検討したオプション:
- 製品の配置中に、Inventor の Bin フォルダにある古いライブラリを上書きします。
- アセンブリで EL 4.1 を使用する
どちらも下手でアイデアが尽きたので、助けを求めています。
オプション 1 では、次の疑問が生じます。Enterprise Library は後方互換性がありますか? Bin フォルダー内の DLL を置き換えると問題が発生しますか? 試してみましたが、Inventor は文句を言わず、期待どおりに動作します (EL 機能をチェックしていません)。
オプション 2 では、古いバージョンを使用し、Autodesk が使用しているバージョンにバインドするため、Autodesk がアップグレードする時期、特に Inventor の新しいバージョンをリリースする時期を監視する必要があります。
このシナリオでのベスト プラクティスは何ですか?
更新:
Enterprise Library の新しいバージョンを GAC に配置するだけで、これを解決しました。ここで起こったことは、.NET が最初に古いバージョンを読み込もうとしたことだと思います (アセンブリの検索順序が高かったため)。GAC では、正しく解決されます。