当本地存储在diff文件夹中的包时,nuget包项目引用会搞砸吗?

当另一个开发人员从TFS中的存储库获取最新信息时,解决方案中每个项目的引用似乎都没有正确链接。

根据我的假设,如果你使用nuget,它会自动为你拉出必要的库吗? 我是否必须进入vs.net并告诉它下载库?

或者我是否在TFS中添加了一些我不应该拥有的东西,以至于假设我的包存储在特定路径上,而当另一个开发人员下载存储库时它们可能不存在?

这是vs.net 2010。

我有一些类似的问题,所以我切换NuGet模式不提交包源控制 。

  1. 选项 – > 包管理器 – > 常规并检查“允许NuGet在构建期间下载丢失的包装”CheckBox并按“确定”。
  2. 右键单击Visual Studio Solution Explorer中的解决方案,然后选择“启用NuGet包还原”。

我还将.nu​​getpackages文件夹(以前的步骤在解决方案的文件夹中创建)的内容添加到解决方案文件夹中的解决方案中。 这样我就可以右键单击解决方案并选择“Check In …”并检入所有相关文件。如果这样做,那么包含所有包文件(如.dll文件)都非常重要在解决方案或TFS中,这将导致NuGet无法正常工作。 如果您选择不执行此操作,则需要使用Pending Changes窗口或右键单击Source Control Explorer中的解决方案文件夹并选择“Check In Pending Changes …”来签入您的更改。

我的.nuget解决方案文件夹包含以下文件:

  • Notes.txt描述了我如何设置NuGet,为什么我按照我的方式设置它,以及任何使用说明/问题。
  • NuGet.config
  • NuGet.exe
  • NuGet.targets

我的包解决方案文件夹包含以下文件:

  • repositories.config

出于某种原因,“允许NuGen下载丢失的软件包”并没有为我删除它。 我注意到在我的解决方案中为nuget创建了一个“packages”文件夹。 我已经检查了这个,但TFS默认过滤掉.dll文件。 所以我不得不回到源代码管理资源管理器中的“packages”文件夹中,添加.dll并检查更改。

例如,这是Visual Studio 2013中用于检入我从NuGet获取的EntityFramework .dll中的步骤(假设您已经在没有.dlls的情况下检入了“packages”文件夹)

  1. 在源代码管理浏览器中找到您的包文件夹
  2. 单击左侧的小箭头打开文件夹
  3. 在您打开的文件夹中找到“lib”文件夹
  4. 右键单击“net45”文件夹(或“net40”或其他),然后选择“将项目添加到文件夹”的上下文选项。
  5. 从“添加到源代码管理”弹出窗口中,双击“net45”文件夹。
  6. 您应该看到在初次检入时排除的一些.dll文件
  7. 点击丢失的文件,点击下面的“下一步”按钮…
  8. 希望.dll现在位于“要添加的项目”选项卡中…如果没有点击屏幕底部的按钮以“包含项目”。
  9. 点击完成按钮
  10. 检查此待定更改
  11. 现在在新工作区中获取解决方案。