Visual Studio没有检测到包更新

时间:2013-10-10 07:18:57

标签: visual-studio-2010 git visual-studio-2012 version-control nuget

我依赖于特定的nuget包。当我更新我的解决方案以使用新的软件包版本和提交/推送解决方案到远程GIT存储库时,解决方案的其他贡献者,拉后,仍然使用旧的DLL版本的nuget包,即使激活了包恢复。但是,当他们打开CSPROJ文件时,它会显示引用应该是新版本。基本上,如果bin / obj文件夹中使用的DLL与csproj文件中引用的DLL之间不匹配,则Visual Studio不会生成任何警告/错误。更简洁:

  1. 解决方案使用DLL版本0.5
  2. 我通过Nuget升级到DLL版本0.6
  3. 我的Visual Studio显示使用版本0.6
  4. 我提交/推送解决方案到GIT
  5. 另一位同事从GIT提取解决方案
  6. 他的Visual Studio显示DLL版本0.5,没有错误/警告
  7. 他的CSPROJ文件引用了DLL版本0.6
  8. 解决方案在运行时失败,因为内部实现发生了变化
  9. 我们如何解决这个问题:

    1. 同事删除了他的bin / obj
    2. Visual Studio注意到DLL缺失
    3. 他在解决方案级别使用Manage Nuget Packages,只需单击OK,其他任何内容
    4. Nuget下载DLL并解决问题
    5. 现在这是一个非常愚蠢的解决方法,在我看来,这应该是自动化的。我们可能做错了什么导致这种情况发生?

1 个答案:

答案 0 :(得分:1)

GIT的{​​{1}}没有考虑到nugget包(也没有在VS\obj文件夹中构建生成的文件。)

\bin通过在下面注释(#)行来管理版本Git文件的包:

edit .gitignore

(nb:如果您要备份并重命名# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets #!packages/*/build/ 文件,请转到there