我有 2 个解决方案:
- 解决方案1
- Project1.1:引用nuget包NU1
- 解决方案2
- Project2.1:参考解决方案1 / Project1.1
当我构建 Solution2 时它失败了,因为 nuget 将 NU1 包拉到 Solution2 的包中,并且当 Project1.1 作为依赖项构建时,NU1 包丢失。
之前的问题和答案已经说服我比 .dll 更好地参考项目——但是,恐怕我还没有理解在使用 nuget 时如何遵循这个指南。
预先感谢您的意见!
我有 2 个解决方案:
当我构建 Solution2 时它失败了,因为 nuget 将 NU1 包拉到 Solution2 的包中,并且当 Project1.1 作为依赖项构建时,NU1 包丢失。
之前的问题和答案已经说服我比 .dll 更好地参考项目——但是,恐怕我还没有理解在使用 nuget 时如何遵循这个指南。
预先感谢您的意见!
问题是Solution1
通过查看文件夹来解决它的引用Solution1\package
,这在构建时不会发生Solution2
打开你的csproj
文件找到
<ItemGroup>
<Reference>
<HintPath>..\..\packages\SomeReference\lib\net45\Reference.dll</HintPath>
将相对位置替换..\..\
为$(SolutionDir)
as
<HintPath>$(SolutionDir)\packages\SomeReference\lib\net45\Reference.dll</HintPath>
由于这$(SolutionDir)
将是解决方案文件夹的路径,因此它将解决未来的所有参考问题。
最终,我这样管理:
=>所有解决方案都使用相同的包:)
当它们在同一个解决方案中时,您应该引用项目。在其他所有情况下,您都应该引用 nuget。
这可能需要私有 nuget 提要。
为什么这样?