Reference could not be added because of same name

2020-02-10 13:06发布

Since the update to VS 2013 I have the behaviour that I cannot add a reference to 2 projects with the same name. I did the following:

  1. Added 3 solution folders A, B and C.
  2. Added a project of type class library "Core" to both A and B folder.
  3. Added a project of type ConsoleApplication to folder C.

The resulting structure looks like this:

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

In the project properties of A the following is entered:

  • Assembly name: A.Core
  • Default namespace: A.Core

and in B:

  • Assembly name: B.Core
  • Default namespace: B.Core

After I added a reference to A.Core in C.ConsoleApp and I try to reference to B.Core to the console I get the error:

A reference to 'Core (B.Core)' could not be added. A reference to the component 'Core' already exists in the project.

The solution was created with VS 2012 and shows this behavior since upgrade. What do I have to setup inside the console?

Edit: I published a screencast on Youtube to explain the problem and placed a bug at Microsoft-Support. I still think, this is a bug.

2条回答
爱情/是我丢掉的垃圾
2楼-- · 2020-02-10 13:11

Remove the reference to that dll and then reapply it. it worked for me.

查看更多
Lonely孤独者°
3楼-- · 2020-02-10 13:32

The issue is that the reference name takes on the project name. It's still referencing the DLL by the appropriate name (A.Core.dll or B.Core.dll), but the reference uses the project name inside VS:

enter image description here

If you look at the project file after adding a reference to A.Core, you'll see this:

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

Change the Name value to A.Core and you'll be unblocked. (B.Core will still show up as "Core" until you edit it as well.)

查看更多
登录 后发表回答