このシナリオの最善のアプローチを教えてください。私は新しいプロジェクトを継承しましたが、これまでこのシナリオに遭遇したことはありません。
C#Windowsフォームアプリケーションには、ドキュメントを作成するためのサードパーティツールへの参照があります。
人々のPCにインストールされている展開環境には、v1.0とv2.0の2つの異なるバージョンのサードパーティツールがあります。
サードパーティツールのv1.0またはv2.0のいずれかで動作するWindowsフォームアプリケーションのみをビルドできます。そのためには、ビルドする前に、開発用PCにいずれかのバージョンをインストールする必要があります。毎回サードパーティのツールをアンインストール/再インストールする必要があるため、これは明らかに悪いアプローチです。PCで間違ったバージョンでビルドすると、ユーザーは
Could not load file or assembly 'Interop.IManage, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=141424aa94e741g5' or one of its dependencies. The located assembly's
manifest definition does not match the assembly reference.
プロジェクトには、GAC参照を使用しているdllへの参照が1つしかないようです。
C:\WINDOWS\assembly\GAC\Interop.iManage\1.0.0.0__141424aa94e741g\third.partyTool.dll
これに対する変更点は、v1.0をアンインストールしてv2.0をインストールすることです。
C:\WINDOWS\assembly\GAC\Interop.iManage\2.0.0.0__141424aa94e741g\third.partyTool.dll
アプリケーションのデプロイに関しては、ファイルの単純なXCOPYを実行し、インストーラーはありません。
アプリケーションで両方の参照を保持し、デプロイされたら正しい参照を使用する方法はありますか?または、これを回避するために使用できる展開方法はありますか?
ありがとう