14

これはCLRプロジェクトです。同じ名前の2つのDLLファイルをインポートしquizz.dll(古いバージョンの名前をに変更しlegacyquizz.dllます)、新しいバージョンをquizz.dllレガシーコンバーターテストプロジェクトに含めます。(テストされているレガシーコンバータープロジェクトは古いもののみをインポートしquizz.dllます)。

これは私が得ているエラーです。。。

同じ単純な名前のアセンブリ'Quizz、Version = 2.0.0.1、Culture = neutral、PublicKeyToken=nullはすでにインポートされています。

参照の1つを削除するか、それらに署名して、並べて有効にしてみてください。c:\。。。\ Quizz.dll

それが指しているパスは、新しいバージョンのquizz.dllの宛先です。

私はlegacyquizz.dllファイルで外部エイリアスを使用しています:

extern alias legacy;

この文脈での「単純な名前」とは何ですか?

4

4 に答える 4

7

プロジェクトのプロパティを開き、[アセンブリ情報]を選択すると、単純な名前が表示されます。

ここに画像の説明を入力してください

アセンブリに署名するには、[署名]タブを選択し、署名キーを作成または選択する必要があります。

ここに画像の説明を入力してください

于 2012-12-22T08:33:27.893 に答える
3

同じ名前のアセンブリが2つあります(ファイル名、アセンブリ名ではありません)。これには2つの解決策があります。

  1. プロジェクトのプロパティからアセンブリの1つに名前を変更し、再コンパイルします。
  2. 同じアセンブリの2つの別々のバージョンが共存できるように、アセンブリに厳密な名前の署名を設定します。
于 2012-12-22T08:34:14.647 に答える
1

新しい.csprojバージョンで作業している場合、別のソリューションプロジェクトへの参照を追加した後、その参照が既にアセンブリ依存関係として存在する場合(この参照はVisual Studioによって自動的に追加されている可能性があります)、この問題が発生する可能性があります。

ソリューションエクスプローラーで、競合するプロジェクトを展開し、[依存関係]-> [アセンブリ]に移動して、競合を引き起こしているアセンブリへの既存の参照がないことを確認します。存在する場合は、削除するだけで競合が解決されます。

于 2019-06-27T17:01:28.863 に答える
-2

私も私のプロジェクトでこの問題のようです。dllパスを別のフォルダーに変更し、同じフォルダー(依存関係レイヤー)の参照パスも変更しました。それが動作します。重複は発生しません。

于 2015-09-19T05:01:47.580 に答える