当本地存储在diff文件夹中的包时,nuget包项目引用会搞砸吗?
当另一个开发人员从TFS中的存储库获取最新信息时,解决方案中每个项目的引用似乎都没有正确链接。
根据我的假设,如果你使用nuget,它会自动为你拉出必要的库吗? 我是否必须进入vs.net并告诉它下载库?
或者我是否在TFS中添加了一些我不应该拥有的东西,以至于假设我的包存储在特定路径上,而当另一个开发人员下载存储库时它们可能不存在?
这是vs.net 2010。
我有一些类似的问题,所以我切换NuGet模式不提交包源控制 。
- 到选项 – > 包管理器 – > 常规并检查“允许NuGet在构建期间下载丢失的包装”CheckBox并按“确定”。
- 右键单击Visual Studio Solution Explorer中的解决方案,然后选择“启用NuGet包还原”。
我还将.nuget和packages文件夹(以前的步骤在解决方案的文件夹中创建)的内容添加到解决方案文件夹中的解决方案中。 这样我就可以右键单击解决方案并选择“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”文件夹)
- 在源代码管理浏览器中找到您的包文件夹
- 单击左侧的小箭头打开文件夹
- 在您打开的文件夹中找到“lib”文件夹
- 右键单击“net45”文件夹(或“net40”或其他),然后选择“将项目添加到文件夹”的上下文选项。
- 从“添加到源代码管理”弹出窗口中,双击“net45”文件夹。
- 您应该看到在初次检入时排除的一些.dll文件
- 点击丢失的文件,点击下面的“下一步”按钮…
- 希望.dll现在位于“要添加的项目”选项卡中…如果没有点击屏幕底部的按钮以“包含项目”。
- 点击完成按钮
- 检查此待定更改
- 现在在新工作区中获取解决方案。