2016-07-27 48 views
1

我正在与其他团队成员在一个大的C#项目。到目前为止,这个项目一直是混乱的,每个人都有自己的方式让自己的环境得到发展并运行。对于新成员(以及未来的成员),我试图记录并加强我们的开发过程。该项目的版本由git控制,成员正在使用VS2012,VS2015和Monodevelop。项目没有意识到成功的Nuget包恢复后的包

我们的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的目录,它们现在存储在那里。这现在模仿我在我尝试重新创建这种行为的小型项目中看到的内容。

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

所以我想知道是否有一种方法来配置VS以查看这些包存储在引用的位置?

+1

当.NET版本不匹配时,我有时会看到相同的问题。这是一个简单的检查,以确保他们这样做,我想我会通过帽子。 –

+0

Ahh ..那么我们正在使用.NET 4.5和mono来保持跨平台的工作,所以如果这是一个问题,那么这会如何影响程序包恢复过程? – Jesse

+0

编辑您的问题以添加包含您的引用的.csproj文件。 –

回答

0

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