从其他解决方案获得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。

这可能需要私人裸体订阅。

为什么要这样?

  1. 解决方案没有任何共同点-下一个开发人员不会理解这个隐藏的引用
  2. 如果你只将它们一起使用,也许它们应该处于解决方案中

最终,我这样管理:

  • 创建了一个与解决方案目录平行的目录
  • 每个解决方案都会获得一个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)将是解决方案文件夹的路径,它将解决未来的所有参考问题。