Visual Studio:如何使一个解决方案依赖于另一个?

Rob*_*ser 28 dependencies projects-and-solutions visual-studio-2008 visual-studio

是否有可能在VS中制定解决方案依赖(即包括)整个其他解决方案?我见过一些关于"解决方案文件夹"的东西,但这些似乎并不是一回事......?谢谢!(顺便说一下,我正在使用VS 2008)

Sam*_*ell 19

并不是的.您必须执行以下操作之一:

  • 制作构建脚本,以正确的顺序构建解决方案.
  • 预构建解决方案A,仅在解决方案B中引用其构建的二进制输出.
  • 制作包含两个解决方案中所有项目的第三个解决方案.

前两项是最常见的,我个人更喜欢第二项.


Rya*_*ann 13

这篇文章很老,但是现在你可以通过为所有这些文件构建nuget包,轻松地在其他解决方案中重用依赖项.VS 2015内置了nuget包,但目前是候选版本.在Visual Studio 2013中,您可以使用Nuget.Packaging nuget包来允许您的项目构建为Nuget包.

然后,您可以将新版本的软件包发布到本地网络共享,并将其配置为Visual Studio中的存储库.

那么你的其他解决方案的项目可能取决于该包.

例如,假设您在称为"核心框架"的解决方案中有可重用的实用程序DLL,并且您希望在正在构建的WebSite中使用一个名为"XYZEcosystem"的解决方案中的实用程序.

在CoreFramework解决方案中,您将为Utility Project构建一个nuget包,该包编译为实用程序dll并在包中包含dll和它的pdb文件.

然后将其发布到您的网络共享.

因此,假设您的软件包具有类似"XYZ.Core.Utilities"的ID,版本为1.0.0.0.

现在在XYZEcosystem中,您将使用包管理器控制台,将存储库下拉列表设置为存储库并键入"Install-Package XYZ.Core.Utilities",它将安装最新版本的XYZ.Core.Utilities.

如果对XYZ.Core.Utilities进行更改,则可以在XYZEcosystem上运行Update-Package XYZ.Core.Utilities,它将获取新版本.


net*_*rog 6

看看这里:http://blogs.msdn.com/b/habibh/archive/2009/06/24/walkthrough-adding-an-existing-visual-studio-solution-to-another-solution.aspx

实际上,所描述的方法将来自另一个解决方案的所有项目添加到当前解决方案中,而不是我们想要的,但至少这节省了一个接一个地手动添加所有项目的时间.