当包存储在本地diff文件夹中时,nuget包项目引用会变得混乱

本文关键字:项目 包项目 nuget 引用 混乱 文件夹 存储 包存储 diff | 更新日期: 2023-09-27 18:08:35

当另一个开发人员在TFS中从存储库中获取最新版本时,解决方案中每个项目的引用似乎不能正确地连接起来。

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

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

这是vs.net 2010

当包存储在本地diff文件夹中时,nuget包项目引用会变得混乱

我有一些类似的问题,所以我切换了NuGet模式,不向源代码管理提交包。

  1. 进入选项 -> 包管理器 -> General,选中"允许NuGet在构建期间下载丢失的包"复选框并按"OK"。
  2. 在Visual Studio解决方案资源管理器中右键单击解决方案,选择"启用NuGet包还原"。

我还添加了的内容。nugetpackages文件夹(前面的步骤在解决方案的文件夹中创建的)到解决方案文件夹中的解决方案。这样,我可以右键单击解决方案并选择"签入…",所有相关文件将被签入。如果您这样做,那么解决方案或TFS中不包含任何包文件(如.dll文件)是非常重要的,因为这将导致NuGet无法正常工作。如果你选择不这样做,那么你需要使用Pending changes 窗口或右键单击源代码管理资源管理器中的解决方案文件夹并选择"check in Pending changes…"来签入更改。

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

  • notes .txt描述我如何设置NuGet,为什么我这样设置它,以及任何使用说明/问题。
  • NuGet.config
  • NuGet.exe
  • NuGet.targets

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

  • repositories.config

由于某些原因,"允许NuGen下载丢失的软件包"并不能满足我的需求。我注意到在我的解决方案中有一个为nuget创建的"packages"文件夹。我已经检查了这个,但是TFS默认过滤掉。dll文件。所以我不得不回到我的源代码管理资源管理器中的"packages"文件夹,添加.dll并签入更改。

例如,这是Visual Studio 2013中检查EntityFramework .dll的步骤,我从NuGet获得(假设您已经检查了没有.dll的"packages"文件夹)

  1. 在源代码管理资源管理器中找到软件包文件夹
  2. 点击左边的小箭头打开文件夹
  3. 在打开的文件夹中找到lib文件夹
  4. 右键单击"net45"文件夹(或"net40"或其他),选择上下文选项"添加项目到文件夹"。
  5. 在"添加到源代码控制"弹出窗口中,双击"net45"文件夹。
  6. 你应该看到一些在
  7. 的初始检查中被排除在外的.dll文件点击缺失的文件并点击下面的"下一步"按钮…希望.dll现在在"要添加的项目"选项卡中…如果没有,点击屏幕底部的按钮"包括项目"。
  8. 点击完成键
  9. Check in this pending change
  10. 现在在新的工作区中获取解决方案。