回答

19

不是。您必须执行以下操作之一:

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

前两项是最常见的,我个人比较喜欢第二项。

+2

*叹* *确定;谢谢! – 2009-07-20 10:02:58

+0

但看到从net_prog – 2014-02-23 03:06:13

0

一个解决方案是建立创建某种可执行文件或DLL的程序集的收集。有一个解决方案取决于另一个解决方案没有意义。输出程序集(executable/dll)依赖于它引用的程序集。如果您的解决方案依赖于其他组件,那么引用它们。您可以将项目添加到解决方案(文件>添加>现有项目),然后您可以从输出项目添加对这些项目的补充资源。

1

你不能那样做。你为什么想要?

只需添加所有你依赖于(在“其他”解决方案的项目)到解决方案的项目。

然后在项目之间使用项目引用(不是文件引用)。

11

这个职位是旧的,但这些日子里,你可以很容易地通过构建的NuGet包所有的人都重用其他解决方案的依赖。 VS 2015拥有内置的nuget软件包,但目前是Release Candidate。在Visual Studio 2013中,您可以使用Nuget.Packaging nuget包来允许您的项目构建为Nuget包。

然后,你可以发布你的软件包的更新版本到本地网络共享,其配置为在Visual Studio中的储存库。

然后您的其他解决方案的项目可以依赖于该包。

例如,假设您在名为“Core Framework”的解决方案中有一个可重复使用的实用程序DLL,并且您想在名为“XYZEcosystem”的解决方案中构建的Web站点上使用实用程序。

在CoreFramework解决方案,您将建立一个NuGet包为编译到公用事业的dll该电力项目,包括DLL和它在包PDB文件。

然后你发布到你的网络共享。

所以我们说你的软件包有像“XYZ.Core.Utilities”一个版本的1.0.0.0的ID。

现在在XYZEcosystem中,您将使用软件包管理器控制台,将存储库下拉到您的存储库并键入“Install-Package XYZ.Core.Utilities”,它将安装最新版本的XYZ.Core.Utilities。

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

相关问题