【发布时间】:2018-04-16 04:56:14
【问题描述】:
我们有大约两打项目,它们都使用不同的 NuGet 包和一堆 Telerik WPF 库,后者通常由 GAC 添加,它本身不会向 csproj-File 添加提示路径. (好)
一旦我们使用 Telerik 的升级向导同时升级所有项目的引用,Telerik 就会开始将文件复制到 bin 文件夹旁边的本地 lib 文件夹并添加提示路径,这些提示路径在其他开发人员机器上不存在并且需要在每次推送到 Git 之前被丢弃。 (坏)
顺便说一句:我们经常在使用 Spire NuGet-Package 时遇到同样的问题(关于提示路径)。
现在我们提出了一些建议,我们内部认为不同,因此没有达成一致:
- 继续丢弃包含提示路径的块
- 请 Telerik 修复向导
- 将库签入 Git
- 使用他们的 NuGet 服务器添加 Telerik 库
- 创建一个我们手动管理的库路径,可能作为网络驱动器
其他人处理这些问题的方法是什么?
【问题讨论】:
-
那么仅仅将这些库签入 git 到底有什么问题呢?那么你的状态始终是一致的,无需执行外部操作(例如在每台机器上运行升级向导)。
-
@Evk,使用 NuGet 有什么问题?使用库文件夹有什么问题?没问题,只想输入如何正确/最好地完成它。最好来自可靠的来源。但反问:为什么不将所有开源项目都纳入其必要的第三方库,即使它们是同一许可下的开源库?
-
NuGet 是最好的,如果可能的话,几乎每个人都同意这一点,尽管有缺点 - 你的代码库现在有一个外部依赖,如果有一天给定的 nuget 包将由于某种原因变得不可用 - 你有问题. nuget 和将库直接添加到 git 都提供了一致性和便利性 - 您只需拉取、构建和完成,即使是从新机器上。至于你的问题——如果我们谈论的是 .NET 库——现在几乎每个人都使用 nuget,所以它们的依赖项通常在那里可用。如果不是(很少见)- 他们确实将它们直接包含在 git 中。
-
您可以轻松地将包缓存在共享文件夹中。那么如果 NuGet 宕机了,你仍然可以继续工作……