在Visual Studio中,是否可以使一个解决方案依赖于(即包含)另一个完整的解决方案?我看到一些关于“解决方案文件夹”的东西,但这似乎不是同一件事......?谢谢!(顺便说一下,我正在使用VS 2008)
在Visual Studio中,是否可以使一个解决方案依赖于(即包含)另一个完整的解决方案?我看到一些关于“解决方案文件夹”的东西,但这似乎不是同一件事......?谢谢!(顺便说一下,我正在使用VS 2008)
不完全正确。您必须执行以下操作之一:
前两个选项是最常见的,我个人更喜欢第二个选项。
这篇文章虽然有些陈旧,但现在你可以通过为它们构建NuGet包,在其他解决方案中轻松地重用依赖项。VS 2015内置了NuGet包生成功能,但目前还处于候选发布状态。在Visual Studio 2013中,您可以使用Nuget.Packaging NuGet包,使项目能够构建为NuGet包。
然后,您只需将新版本的包发布到本地网络共享,并在Visual Studio中将其配置为仓库。
然后,您的其他解决方案项目就可以依赖该软件包。
例如,假设您在名为“核心框架”的解决方案中拥有一个可重用的Utility DLL,并且您想要在名为“XYZ生态系统”的解决方案中构建的WebSite上使用其中的实用程序。
在CoreFramework解决方案中,您将为编译为实用程序DLL的实用程序项目构建一个NuGet包,并在包中包含DLL及其PDB文件。
然后,您将其发布到您的网络共享中。
因此,假设您的包具有ID“XYZ.Core.Utilities”和版本1.0.0.0。
现在,在XYZEcosystem中,您可以使用包管理器控制台,将存储库下拉列表设置为您的存储库,并键入“Install-Package XYZ.Core.Utilities”,它将安装XYZ.Core.Utilities的最新版本。
如果您对XYZ.Core.Utilities进行更改,则可以在XYZEcosystem上运行Update-Package XYZ.Core.Utilities,它将使用新版本。
*.sln
文件没有被上级*.sln
文件引用。因此,对添加的*.sln
文件所做的任何更改都不会反映在上级*.sln
文件中。如果*.sln
文件能够保持分层关系,那就更好了。 - A. David Ing你不能这样做。而且你为什么要这样做呢?
只需将所有依赖项项目(即“其他”解决方案中的项目)添加到该解决方案中。
然后在项目之间使用项目引用(而不是文件引用)。