2013-04-11 25 views
3

当其他开发商自于TFS仓库最新的,似乎解决方案中的每个项目的引用不正确地连接起来。当包存储在diff文件夹本地时,nuget包项目引用会搞砸吗?

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

还是我补充一下到TFS,我不应该有这样的,这是假设我的包存储在特定的路径时,当其他开发者下载资源库,他们可能不?

这是vs.net 2010

+0

库本身是否在TFS中?默认情况下,TFS不会提示您签入'.dll'文件。 – 2013-04-11 16:11:25

+0

瑞恩,不,他们不在TFS里,只是看着,但是为什么我可以在新电脑上下载它们呢?我甚至没有看到选择? – loyalflow 2013-04-11 16:19:48

+0

您需要启用NuGet软件包还原。工具 - >选项 - >软件包管理器:确保选中“允许Nuget在生成过程中下载缺失的软件包”。 – gregpakes 2013-04-11 16:27:46

回答

3

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

  1. 选项 - >软件包管理器 - >一般并勾选“允许的NuGet到构建过程中下载缺失的packeges”复选框,然后按“确定”。
  2. 右键单击在Visual Studio解决方案资源管理器解决方案,并选择“启用NuGet包还原”。

我还添加了.nuget包的内容文件夹(在该解决方案的文件夹中创建前面的步骤)在solution folders解决方案。这样我可以用鼠标右键单击该解决方案,并选择“入住......”和所有相关的文件将被检查。如果你这样做,那么它是非常重要的,没有一个包文件(如.dll文件)都包括在解决方案或TFS中,因为这会导致NuGet无法正常工作。如果您选择不这样做,那么你就需要在源控制使用挂起的更改窗口或通过在解决方案文件夹右击资源管理器并选择在更改检查“签入挂起的变化......”

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

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

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

  • repositories.config
2

对于一些因为“允许NuGen下载缺失的软件包”并没有为我削减。我注意到在我的解决方案中为nuget创建了一个“packages”文件夹。我已经检查过,但TFS默认过滤出.dll文件。所以我不得不回到我的源代码管理器中的“packages”文件夹中,然后添加.dlls并检查更改。

例如,这是在Visual Studio 2013中的步骤在检查的EntityFramework我为.dll从的NuGet(这里假设你已经检查了你的“套餐”文件夹中没有的.dll)

  1. 在得到源代码控制管理通过点击小箭头向左
  2. 找到你的包文件夹
  3. 打开文件夹找到您打开
  4. 右键单击“net45”文件夹中的文件夹中的“LIB”文件夹(或“net40 “或其他)并选择上下文opti在“添加项目到文件夹。
  5. 从添加到源代码控制弹出窗口中,双击“net45”文件夹。
  6. 您应该看到
  7. 被排除在你的初步检查,一些.dll文件(S)点击丢失的文件并点击“下一步”按钮...
  8. 希望.dll文件是在“项目现在添加“标签...如果没有按下屏幕底部的按钮以”包含项目“。
  9. 点击完成按钮
  10. 入住此挂起更改
  11. 现在做的新的工作空间解决方案的获取。