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

lsunt 发布于 2019-03-09 c# 最后更新 2019-03-09 14:34 2 浏览

当另一个开发人员从TFS的存储库中获得最新版本时,解决方案中每个项目的引用似乎都没有正确链接。 根据我的设想,如果你使用nuget,它会自动为你抽出必要的库吗?我是否必须进入vs.net并告诉它下载这些库? 还是我添加了一些东西,我不应该这样假设我的包存储在一个特定的路径,当他们可能不是当另一个开发人员下载存储库? 这是vs.net 2010。

已邀请:

baut

赞同来自:

出于某种原因,“允许NuGen下载丢失的软件包”并没有为我删除它。我注意到在我的解决方案中为nuget创建了一个“packages”文件夹。我已经检查了这个,但TFS默认过滤掉.dll文件。所以我不得不回到源代码管理资源管理器中的“packages”文件夹中,添加.dll并检查更改。 例如,这是Visual Studio 2013中用于检入我从NuGet获取的EntityFramework .dll中的步骤(假设您已经在没有.dlls的情况下检入了“packages”文件夹)

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

kex

赞同来自:

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

  1. 选择 - >包管理器 - >常规并选中“允许NuGet在构建期间下载丢失的包装”复选框并按“确定”。
  2. 右键单击Visual Studio Solution Explorer中的解决方案,然后选择“启用NuGet包还原”。
我还将.nuget和packages文件夹(以前的步骤在解决方案的文件夹中创建)的内容添加到solution folders中的解决方案中。这样我就可以右键单击解决方案并选择“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