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

时间:2013-04-11 16:04:03

标签: c# visual-studio tfs

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

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

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

这是vs.net 2010。

2 个答案:

答案 0 :(得分:3)

我有一些类似的问题所以我将NuGet模式切换为commit packages to source control

  1. 选项 - > 包管理器 - > 常规并选中“允许NuGet在构建期间下载丢失的包裹”CheckBox并按“确定”。
  2. 右键单击Visual Studio Solution Explorer中的解决方案,然后选择“启用NuGet包还原”。
  3. 我还将 .nuget 软件包文件夹(以前的步骤在解决方案的文件夹中创建)的内容添加到solution folders中的解决方案中。这样我就可以右键单击解决方案并选择“Check In ...”并检入所有相关文件。如果这样做,那么包含所有包文件(如.dll文件)都非常重要在解决方案或TFS中,这将导致NuGet无法正常工作。如果您选择不执行此操作,则需要使用待更改窗口或右键单击源代码管理资源管理器中的解决方案文件夹并选择“检查待更改......“

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

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

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

    • repositories.config

答案 1 :(得分:2)

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

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

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