Visual studio 添加到同一解决方案中某个项目的项目引用在另一个解决方案中显示为断开

Visual studio 添加到同一解决方案中某个项目的项目引用在另一个解决方案中显示为断开,visual-studio,projects-and-solutions,Visual Studio,Projects And Solutions,我有两个解决办法 在第一个解决方案中,我有许多项目。其中一个名为“A”的项目具有同一解决方案的另一个项目“B”的项目引用 在第二个解决方案中,添加了项目“A”,但没有添加项目“B” 这两种解决方案都成功构建 然而,在第二种解决方案中,引用 此时将显示在项目A中添加的项目B 坏了 为什么? 现在,在第一个解决方案中,我没有将B的项目引用添加到A中,而是将B的DLL的“文件引用”(在为所有项目创建的公共输出目录中复制)添加到A中。现在,该引用在解决方案中出现中断,并且第一个解决方案未成功构建 我可以

我有两个解决办法

在第一个解决方案中,我有许多项目。其中一个名为“A”的项目具有同一解决方案的另一个项目“B”的项目引用

在第二个解决方案中,添加了项目“A”,但没有添加项目“B”

这两种解决方案都成功构建

然而,在第二种解决方案中,引用 此时将显示在项目A中添加的项目B 坏了

为什么?

现在,在第一个解决方案中,我没有将B的项目引用添加到A中,而是将B的DLL的“文件引用”(在为所有项目创建的公共输出目录中复制)添加到A中。现在,该引用在解决方案中出现中断,并且第一个解决方案未成功构建

我可以知道当我 有这样的情况吗

编辑:我查看了项目A的项目文件,发现B的项目引用的路径(
属性)是相对路径。(如“.\B\B.csproj”)。
我想这就是为什么该引用在第二个程序集中出现断开的原因,因为程序集B不是第二个解决方案的一部分,并且显然在使用相对路径解析引用时“B.csproj”不可用

在第一个解决方案中,您将“B”添加为项目“a”的“项目参考”。现在,当您将项目“A”添加到第二个解决方案中时,它在第二个解决方案中查找“项目B”(因为它是“项目引用”),显然它找不到它,所以它显示了一个警告

然而,在运行时,项目“A”知道在哪里可以找到项目B的输出,因此引用将被重新调用,您在运行时应该不会遇到问题。(这就是两种解决方案都能成功构建的原因)

对于第二个场景(直接添加对B的DLL的引用),它对我来说效果很好。当您说“添加文件引用”时,我假设您的意思是直接向DLL添加引用(右键单击引用->添加引用->程序集->浏览->B.DLL),或者有其他我不知道的方法吗


希望这有帮助:)

有两种方法可以引用项目的输出:

  • 引用已编译的程序集(.dll文件)
  • 引用项目本身,意味着您需要编译项目的输出
  • 当您没有将创建该程序集作为解决方案一部分的项目时,将使用第一个场景。通常,这用于引用来自第三方的程序集,或者不经常更改的程序集

    第二个场景要求您引用的项目出现在解决方案中


    听起来您混合了引用,创建了一个项目引用,该项目不属于解决方案的一部分。这不起作用。

    谢谢你的回复。我仍在调查,因为问题似乎与参考文献无关。问题可能是一个接一个地自动连续构建解决方案……是的,你所说的是正确的。我把参考资料混在一起了。然而,这似乎不是唯一的问题。我仍在调查,似乎问题也可能与我的自动构建操作有关,这些操作通过一些脚本构建解决方案。感谢您的回复。通过从第二个解决方案中删除项目A,问题得以解决。我没有向项目A添加“项目引用”,而是向其保存在共享位置的DLL添加了引用。此外,在所有必需的项目上,我必须编写生成后事件,以便将DLL从\bin\Debug复制到添加引用的共享文件夹中。