来自其他解决方案的 nuget 参考
nuget reference from other solution
我有 2 个解决方案:
- 解决方案1
- Project1.1:引用 nuget 包 NU1
- 解决方案2
- Project2.1:引用 Solution1 / Project1.1
当我构建 Solution2 时它失败了,因为 nuget 将 NU1 包拉到 Solution2 的包中,而当 Project1.1 作为依赖项构建时,包 NU1 丢失。
之前的问题和答案让我相信比 .dll 更好地引用项目——但是,恐怕我还不明白在使用 nuget 时如何遵循这个指南。
提前感谢您的意见!
当它们在同一个解决方案中时,您应该引用项目。在所有其他情况下,您应该参考 nuget。
这可能需要私人 nuget 提要。
为什么这样?
- 解决方案没有任何共同点 - 下一个开发人员不会理解这个隐藏的参考
- 如果您只将它们一起使用,也许它们应该在溶液中
最后,我是这样处理的:
- 创建了一个与解决方案目录平行的 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)
将是解决方案文件夹的路径,它将解决未来的所有参考问题。
我有 2 个解决方案:
- 解决方案1
- Project1.1:引用 nuget 包 NU1
- 解决方案2
- Project2.1:引用 Solution1 / Project1.1
当我构建 Solution2 时它失败了,因为 nuget 将 NU1 包拉到 Solution2 的包中,而当 Project1.1 作为依赖项构建时,包 NU1 丢失。
之前的问题和答案让我相信比 .dll 更好地引用项目——但是,恐怕我还不明白在使用 nuget 时如何遵循这个指南。
提前感谢您的意见!
当它们在同一个解决方案中时,您应该引用项目。在所有其他情况下,您应该参考 nuget。
这可能需要私人 nuget 提要。
为什么这样?
- 解决方案没有任何共同点 - 下一个开发人员不会理解这个隐藏的参考
- 如果您只将它们一起使用,也许它们应该在溶液中
最后,我是这样处理的:
- 创建了一个与解决方案目录平行的 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)
将是解决方案文件夹的路径,它将解决未来的所有参考问题。