質問: 当該環境はいくつかのdllに分かれており、修正対象となったdllだけ載せ替えて機能の修正を行いたいのですが、サーバ環境へ作成したdllをdeployしたところ以下のようなerrorが発生しました。 ``` ファイルまたはアセンブリ 'Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。 ``` 原因としては、開発環境で使っていたOracle.DataAccessのversionとサーバ環境のversionに差異があったためだと思っています。 とりあえず、実行環境のversionを把握して、同versionを開発環境に入れてbuildすれば良いのだと思うのですが...仮に、そのversionが提供されなくなったら?という不安がよぎります。 そこで質問なのですが、開発環境と実行環境でOracle.DataAccessのversionが違っても実行時にerrorが発生しないようにできるのでしょうか? サーバ環境の変更は許容されないと思うため、開発環境側でなんとかできないかな?と思った次第です。 しばらく調べてるんですが、どのように対処するのが良いのか分からず、解法が見つかりません。 何か情報を提供いただけると幸いです。よろしくお願いします。 **サーバ環境** ・Windows Server 2008R2 ・IIS7 ・ASP.NET .NET Framework 3.5 ![サーバ環境assembly](https://i.stack.imgur.com/ywhoc.png) **開発環境** ・Windows 7 Professional (64bit環境) ・Visual Studio 2008 Professional ・IIS Express ・ASP.NET .NET Framework 3.5 ![開発環境assembly](https://i.stack.imgur.com/IsPfK.png)
回答: 遅延バインディングですかねぇ。 参考URL: WinFormsでExcelを扱う際に、複数バージョンのExcelに対応しようとして 遅延バインディングを使ったことがあります。 ASP.NETでも使えると思います。 ただ、遅延バインディングにするとVisual Studio上でIntelliSenceが効かなくなるので、 開発がちょっとやりづらくなりますね。