C# 由于名称相同,无法添加引用

C# 由于名称相同,无法添加引用,c#,visual-studio,visual-studio-2013,.net-4.5,C#,Visual Studio,Visual Studio 2013,.net 4.5,由于VS 2013的更新,我的行为是无法添加对两个同名项目的引用。我做了以下工作: 添加了3个解决方案文件夹A、B和C 在a和B文件夹中都添加了一个类库类型为“Core”的项目 将类型为ConsoleApplication的项目添加到文件夹C 生成的结构如下所示: Solution + A + Core + B + Core + C + ConsoleApp 在项目的项目属性中,输入以下内容: 组件名称:A.Core 默认名称空间:A.Core 在B中: 组件名称

由于VS 2013的更新,我的行为是无法添加对两个同名项目的引用。我做了以下工作:

  • 添加了3个解决方案文件夹A、B和C
  • 在a和B文件夹中都添加了一个类库类型为“Core”的项目
  • 将类型为ConsoleApplication的项目添加到文件夹C
  • 生成的结构如下所示:

    Solution
     + A
       + Core
     + B
       + Core
     + C
       + ConsoleApp
    
    在项目的项目属性中,输入以下内容:

    • 组件名称:A.Core
    • 默认名称空间:A.Core
    在B中:

    • 组件名称:B.核心
    • 默认名称空间:B.Core
    我在C.ConsoleApp中添加了对a.Core的引用,并尝试将B.Core引用到控制台后,出现错误:

    无法添加对“Core(B.Core)”的引用。项目中已存在对组件“核心”的引用

    该解决方案是使用VS 2012创建的,并在升级后显示此行为。我必须在控制台内设置什么


    编辑:我在上发布了一个屏幕广播来解释这个问题,并在上放置了一个bug。我仍然认为,这是一个bug。

    问题是引用名称采用了项目名称。它仍然使用适当的名称(A.Core.DLL或B.Core.DLL)引用DLL,但引用在VS:

    如果在添加对.Core的引用后查看项目文件,您将看到:

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

    将名称值更改为.Core,您将被解锁。(B.Core仍将显示为“Core”,直到您对其进行编辑。)

    删除对该dll的引用,然后重新应用它。这对我很有用。

    如果你在一个屋顶下运行多个项目。如果您试图访问主项目下的新项目,只需右键单击主项目并添加对新项目的引用。

    谢谢您的回复,但这会带来一个大问题。如果您在VS 2012中打开相同的解决方案,它将起作用。这意味着,据我所知,SLN格式有一个突破性的变化,尚未报告。如果我在2013年参与2012年创建的项目,我会遇到问题。不过还是要谢谢你,我认为这已经解决了。谢谢!这救了我一天~嗨,这在VS2017中发生了变化吗?