来自其他解决方案的 nuget 参考

nuget reference from other solution

我有 2 个解决方案:

当我构建 Solution2 时它失败了,因为 nuget 将 NU1 包拉到 Solution2 的包中,而当 Project1.1 作为依赖项构建时,包 NU1 丢失。

之前的问题和答案让我相信比 .dll 更好地引用项目——但是,恐怕我还不明白在使用 nuget 时如何遵循这个指南。

提前感谢您的意见!

当它们在同一个解决方案中时,您应该引用项目。在所有其他情况下,您应该参考 nuget。

这可能需要私人 nuget 提要。

为什么这样?

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

最后,我是这样处理的:

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