gpt4 book ai didi

version-control - 如何在团队开发中正确使用 NuGet?

转载 作者:行者123 更新时间:2023-12-03 23:44:36 25 4
gpt4 key购买 nike

所以我想使用 NuGet 来管理我用于我的团队和我正在从事的特定项目的各种项目。到目前为止,我已将我的 .js 库文件放在我的 Web 解决方案 (ASP.NET MVC 2) 的/Scripts 目录中并引用了这些文件。当然,这是手动的,在升级等过程中管理起来很烦人。

现在我正在使用 NuGet,我意识到 NuGet 的整个目标是让这变得相当轻松。此外,似乎我不应该将我的包检入我的存储库(也就是我不再需要管理我的外部库)。但是,当我从 NuGet 获取 jQuery(例如)时,它会将其特定文件放在我项目的/Scripts 目录中。

我感到困惑的地方 - 如果有的话,此时我应该检查源代码管理吗?我还要检查/Scripts 目录吗?

此外,如果其他人正在处理此项目并从源代码管理中 check out 解决方案,是否会自动下载包(假设该解决方案带有有效的 packages.config)?

在我们开始全职使用 NuGet 之前,我只是想澄清几点。

最佳答案

NuGet 与 VCS 有两种情况: checkin 或不 checkin ,这是个问题。
我认为两者都是有效的,但是当使用 TFS 作为 VCS 时,我肯定会选择 no-checkin policy for NuGet packages .

也就是说,即使对 NuGet 包使用无 checkin 策略,我仍然会 checkin 这些 NuGet 包对我的项目所做的内容更改。 \Scripts文件夹将被完整 checkin (不是选择性的,不被忽略)。

包的无 checkin 政策对我来说意味着:不 checkin \Packages 文件夹( cloak it ,忽略它),除了 \Packages\repositories.config文件。

因此,您实际上并未提交任何 NuGet 包,并且在使用 Enable-PackageRestore 时从 NuGetPowerTools(即将在 NuGet v1.6 中内置),任何检查代码和构建的机器都将在预构建步骤中获取所有必需的 NuGet 依赖项。
本地开发机器和构建服务器都是如此,只要 Enable-PackageRestore在您的解决方案中启用并指向正确的 NuGet 存储库(本地、内部、外部)。

如果你考虑一下,当安装一个只添加对一些二进制文件的引用的 NuGet 包时,你已经在无 checkin 场景中做同样的事情:你不会提交 \Packages文件夹的子文件夹,但仍然需要提交项目更改(添加的引用)。

我会说,保持一致 (对于任何类型的包),它是否仅包含二进制文件、仅内容或混合。 Do not commit the packages themselves ,请务必将更改提交到您的源。 (如果只是为了避免查找内容更改的麻烦)

关于version-control - 如何在团队开发中正确使用 NuGet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8440204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com