web-dev-qa-db-ja.com

同じ名前のため、参照を追加できませんでした

VS 2013の更新以降、同じ名前の2つのプロジェクトへの参照を追加できないという動作があります。私は次のことをしました:

  1. 3つのソリューションフォルダA、B、Cを追加しました。
  2. タイプクラスライブラリ「Core」のプロジェクトをAフォルダとBフォルダの両方に追加しました。
  3. ConsoleApplicationタイプのプロジェクトをフォルダーCに追加しました。

結果の構造は次のようになります。

Solution
 + A
   + Core
 + B
   + Core
 + C
   + ConsoleApp

Aのプロジェクトプロパティには、次のように入力されます。

  • アセンブリ名:A.Core
  • デフォルトの名前空間:A.Core

とBで:

  • アセンブリ名:B.Core
  • デフォルトの名前空間:B.Core

C.ConsoleAppでA.Coreへの参照を追加し、コンソールでB.Coreを参照しようとすると、次のエラーが発生します。

'Core(B.Core)'への参照を追加できませんでした。コンポーネント「コア」への参照は、プロジェクトにすでに存在します。

このソリューションはVS2012で作成され、アップグレード以降の動作を示しています。コンソール内で何を設定する必要がありますか?

編集:問題を説明するために Youtube にスクリーンキャストを公開し、 Microsoft-Support にバグを配置しました。私はまだ、これはバグだと思います。

17

問題は、参照名がプロジェクト名を引き継ぐことです。 DLLを適切な名前(A.Core.dllまたはB.Core.dll)で参照していますが、参照ではVS内のプロジェクト名が使用されています。

enter image description here

A.Coreへの参照を追加した後でプロジェクトファイルを見ると、次のことがわかります。

<ProjectReference Include="..\ClassLibrary1\Core.csproj">
  <Project>{16c42795-f703-4673-98e4-98758c09f9e0}</Project>
  <Name>Core</Name>
</ProjectReference>

Nameの値をA.Coreに変更すると、ブロックが解除されます。 (B.Coreは、編集するまで「Core」として表示されます。)

24
Jimmy

そのdllへの参照を削除してから、再適用します。それは私のために働いた。

3
Harry