从其他解决方案获得nuget引用
本文关键字:nuget 引用 其他 解决方案 | 更新日期: 2023-09-27 18:27:38
我有两个解决方案:
- 解决方案1
- 项目1.1:引用nuget包NU1
- 解决方案2
- 项目2.1:参考解决方案1/项目1.1
当我构建Solution2时,它失败了,因为nuget将NU1包拉到Solution2的包中,而当Project1.1作为依赖项构建时,包NU1丢失。
之前的问题和答案说服了我更好地参考.dlls项目——然而,恐怕我还不知道在使用nuget时如何遵循这一准则。
提前感谢您的评论!
当它们在同一解决方案中时,您应该引用项目。在其他任何情况下,你都应该参考nuget。
这可能需要私人裸体订阅。
为什么要这样?
- 解决方案没有任何共同点-下一个开发人员不会理解这个隐藏的引用
- 如果你只将它们一起使用,也许它们应该处于解决方案中
最终,我这样管理:
- 创建了一个与解决方案目录平行的包目录
- 每个解决方案都会获得一个nuget.config文件
=>所有解决方案都使用相同的包:)
问题是Solution1
通过查看Solution1'package
文件夹来解决其引用,而在构建Solution2
时不会发生这种情况
打开csproj
文件查找
<ItemGroup>
<Reference>
<HintPath>..'..'packages'SomeReference'lib'net45'Reference.dll</HintPath>
将相对位置..'..'
替换为$(SolutionDir)
作为
<HintPath>$(SolutionDir)'packages'SomeReference'lib'net45'Reference.dll</HintPath>
由于$(SolutionDir)
将是解决方案文件夹的路径,它将解决未来的所有参考问题。