【发布时间】:2018-02-07 10:53:26
【问题描述】:
我有一个奇怪的场景。
假设我正在研究一个名为 SOL 的解决方案。 该解决方案有 3 个项目:A、B 和 C。 现在,项目 A 使用项目 B 和 C 作为项目引用,因为所有这 3 个项目共享相同的解决方案,并且所有这些项目都有 nuget 包以便在其他解决方案中使用它们。
我有另一个解决方案,称为 SOL2。 该解决方案有一个项目,我们称之为 D。 D 使用 SOL 中的项目 B 和 C 作为 nuget 包,D 有自己的 nuget 包。
问题是,SOL 的项目 A 使用项目 D。 当我想在项目A上安装项目D的nuget时,它会自动将项目D的所有依赖安装为nuget包,包括B和D,它们在A的同一个解决方案上,没有任何意义。
我知道我可以使用“忽略依赖项”选项,但是我可能会跳过不在 A 的同一解决方案中的所需引用 (试着想象一个有 100 个引用的案例,而不仅仅是 2-3 个)。
有什么方法可以防止 nuget 仅安装与项目 A 相同的解决方案中的这些特定项目包?
我希望情况是可以理解的。
谢谢。
【问题讨论】:
-
这样做会遇到什么问题? packages.config 在这种情况下并不能很好地工作,因为它没有对偶的概念(项目和包引用基本相同)。
-
我可能错了,但我不确定你是否正确。如果项目 B 和 C 属于 A 的同一个解决方案,并且 A 使用 nuget 引用 B 和 C,那么如果我想更改项目 B 和 C 的代码,它不会影响项目 A,因为引用是特定的 DLL版本且未引用 bin/debug/projectB.dll。
-
我认为我的评论措辞很糟糕:) packages.config 没有二元性的概念。二元性的概念是项目和包引用被视为相同。
标签: visual-studio nuget