【发布时间】:2015-11-05 15:03:57
【问题描述】:
设置
我有一个解决方案Commons.sln,其中包含其他更具体项目的常用工具。让我们以一个名为Cars.sln 的特定解决方案为例,只是为了更容易探索这个案例。所有解决方案都有自己的一组 NuGet 包。
所有项目都位于同一个 VCS 分支中,因此文件夹结构非常严格。
我想达到什么目标?
我想参考所有特定项目中的通用库。因此,我已将 Commons.sln 的项目添加到我的 Cars.sln。但是我遇到了这个设置的问题,因为我的团队中从未构建过Commons.sln 的人没有将此解决方案中的 NuGet 包下载到他们的机器上,并且当尝试构建 Cars.sln 时 - 他们面临一个错误,说项目的 dll未找到来自 Commons.sln 的信息。
长话短说 - 我想在构建之前执行 nuget restore ../../Commons/Commons.sln,但不知道如何在 Visual Studio 中每次构建/重建的 Cars.sln 解决方案级别上做得更好。
具体说明
我对此进行了一些研究,并且有我的要点:
- 我不想在 VCS 中提交我的任何 NuGet 包
- 我是 adding a .target file per solution 的解决方案,但它仅在我直接使用
msbuild.exe构建时才有效。 - 在其他SO question。有一个建议是添加一个项目并通过构建顺序解决它,这对我来说似乎是 hacky。
特定项目绑定到 CI 服务器,所以这个结构也应该在那里工作(目前我已经通过添加一个构建步骤来解决 Commons.sln 在其他一切之前)
欢迎提出任何建议。
【问题讨论】:
标签: visual-studio msbuild continuous-integration nuget nuget-package-restore