成功的Nuget包恢复后项目不知道包

时间:2016-07-27 19:17:57

标签: c# git nuget-package-restore

我正在与其他团队成员一起开展一个大型C#项目。到目前为止,该项目一直处于混乱状态,每个人都有自己的方式来开发和运行开发。对于新成员(以及未来的成员),我正在努力记录并加强我们的开发过程。该项目由git控制,成员使用VS2012,VS2015和Monodevelop。

我们的C#解决方案中的C#项目都有他们需要的NuGet包。我在.gitignore文件中有以下内容:

# NuGet Packages
*.nupkg
# Ignore the actual packages but not the config file for them
**/packages/**/*
!**/packages/repositories.config
# don't ignore build/, which is used as an MSBuild target.
!**/packages/build/

因此,当我从一台机器上推出然后克隆另一台机器时,我确实有一个包含在其中的项目的解决方案。这些项目有packages.config个文件,这是包含包名称的xml文件和需要的版本。

这是我的问题

我尝试使用VS2015社区版的新Windows 7计算机来克隆回购,这很好用。然后提示恢复NuGet包。我做到了我可以看到包和版本随感兴趣的项目的NuGet包管理器视图一起安装: enter image description here 但在我的项目参考中,它们似乎没有安装: enter image description here

尝试用较小的项目隔离问题

我想也许这很奇怪所以我关闭了解决方案,并开始了一个带有一个小型控制台应用项目的新小解决方案。我在此项目中添加了旧版本的NUnit,并验证了NuGet包已安装到pakcages目录中。然后我关闭了解决方案,并删除了packages目录。当我打开解决方案时,它意识到包不在那里所以我尝试通过右键单击包菜单来执行恢复包操作。这很好用。

所以我认为我的大C#项目中必须有其他一些配置搞砸了。我不知道它是否在我的系统上的其他地方安装软件包。任何有关查看位置或查看配置的指示都会有所帮助和赞赏!

(我还没有看到这个问题在哪里,显然安装了软件包,但项目仍然没有意识到它)

2016年7月28日更新 我正在查看解决方案的nuget.config文件,看来那里有一条线:

<add key="repositorypath" value="External\Packages" />

然后我找到了与我的名为External Packages的解决方案文件相同级别的目录。我想要注意的是,最初设置此解决方案及其项目的人已经不在了。所以我删除了该目录和nuget.config文件。我重新启动了VS2015并运行了恢复NuGet Packages操作。这似乎恢复了包并创建了一个名为packages的目录,现在存储它们。这现在模仿我在我试图重新创建此行为的小项目中看到的内容。

但是我仍然遇到NuGet包管理器说安装包但“引用”没有显示它们的问题。

所以我想知道有没有办法配置VS来查看这些包存储在哪里?

1 个答案:

答案 0 :(得分:0)

@RoberHarvey有正确的解决方案。问题出在我解决方案中项目的.csproj文件中。这是代码库的一部分,从来没有真正有一个很好的方法来跟踪包,并且过去没有尝试修复它。因此,我的项目文件中存在一些不一致的问题。通过在删除旧的nuget.config文件后卸载并重新安装问题包来解决此问题。