1

このシナリオの最善のアプローチを教えてください。私は新しいプロジェクトを継承しましたが、これまでこのシナリオに遭遇したことはありません。

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を実行し、インストーラーはありません。

アプリケーションで両方の参照を保持し、デプロイされたら正しい参照を使用する方法はありますか?または、これを回避するために使用できる展開方法はありますか?

ありがとう

4

1 に答える 1