2016-07-14 4 views
0

私はFreeSpire.DocとFreeSpire.Xlsの2つのNuGet依存関係を使っているプロジェクトを持っています。どちらもFreeSpire.Pdfライブラリに依存しています。問題は、異なるバージョンのライブラリに依存していることです。そして、実行時に、私は例外異なるバージョンのライブラリを追加する

はアセンブリからタイプ "3" のロードに失敗しましたを取得しました "Spire.Pdf、バージョン= 3.6.230.55040を、カルチャニュートラル、PublicKeyToken = = 663f351905198cb3"

されていますプロジェクトには2つのバージョンのライブラリを用意する方法がありますか?

答えて

0

私が知っている限り、同じプロジェクトに2つのバージョンのNuGetパッケージを持つことはできません。

古いバージョンを指し示す1は、より新しいバージョンで仕事はできるが、それはのような醜いハック、する必要があります場合:(

  • 手動で参照として必要なDLLを追加しますもしあなたがオープンソースプロジェクトであれば、あなた自身でコンパイルすることもできます)。

  • ロジックを2つの異なるプロジェクトに分割し、常に古いバージョンを指し示した後に新しいバージョンを指すものを構築します。

  • 何らかの形でDLLをGACにインストールすることができれば、両方のバージョンを横に並べて実行することができます。

+0

1.オープンソースではありません。この場合、一方は依然として他方を無効にする。 3. GACを使用することはできません。なぜなら、Clickonceの導入はそれをサポートしていないからです。 –

+0

パッケージごとに1つずつ、2つのプロジェクトを作成してみてください。それらをコンパイルし、出力フォルダのそれぞれから各パッケージのアセンブリを取得しますが、新しいバージョンを使用するプロジェクトの出力フォルダから共有アセンブリを取得します。最後に、それらを通常の参照としてメインプロジェクトに追加します。 これはハックだから、新しいバージョンのパッケージがリリースされたときにアセンブリを手動で更新する必要がありますが、動作する可能性があります。 –

関連する問題