TFS和git,缺少参考

时间:2017-08-24 13:18:49

标签: c# asp.net-mvc git visual-studio tfs

例如,在我拉动存储库的asp.net mvc项目中,缺少一些引用。

我必须再次手动添加它们。在小型项目中不是问题,但在庞大的存储库中,它发生了大问题和时间丢失。 git中也存在同样的问题。我想当我拉存储库时,一切都应该清楚。

有关于此问题的任何解决方案吗?

1 个答案:

答案 0 :(得分:1)

从最佳实践"从某种角度来看,源代码控制不应包含项目所依赖的库。相反,它应该包含获取这些依赖项的指令(例如项目定义文件中的引用)。

这种工作的无缝程度取决于您的工具。在Visual Studio开发环境中,通常使用NuGet,不幸的是,根据我的经验,您必须实际告诉NuGet您希望解析引用。 (相比之下,对于使用Maven依赖关系管理的项目 - 在Java中比.Net更常见 - 依赖关系的解析是构建生命周期的默认部分;因此您可以检查并构建。)

要完全实现我提到的最佳实践......并非总是微不足道。例如,您可能会发现您需要托管自己的NuGet包。继续这样做有好处,但不是每个人都决定。

无论如何,虽然我不推荐它,但为了完整地回答问题,这里有另一种选择。您似乎最初在谈论Visual Studio,团队资源管理器和TFVC。

可能在源代码管理中嵌入引用的lib。通常,源控件会忽略这些库存在于工作树中的目录,因此默认尝试将所有内容添加到源代码控制"可能会过去他们。如果您导航到解决方案资源管理器中的特定库,并且具体说只添加这些文件,则会提示您"文件被忽略;无论如何添加" (或类似的东西)。如果你说是,那就是那个。

至于为什么git也会发生这种情况......好吧,我假设你使用相同的工具(visual studio / team explorer)来解决git问题,我假设他们默认设置相同的忽略规则。它是我真正使用的工具组合,因此我无法说出比这更明确的内容。

现在,我有一些混合了NuGet和源代码控制嵌入式库的项目,我可以告诉你我已经采取了NuGet(即使有更多的步骤告诉它我需要解析依赖关系)一周。