Nuget无法管理从git克隆的项目中的引用

9
我创建了一个项目(asp mvc 4),使用nuget添加dll,然后将其提交到bitbucket,最后在同一台电脑上的不同目录中克隆。在克隆的项目中,每个引用都显示错误(黄色感叹号)。
我允许nuget管理包:
我也在我的解决方案中拥有nuget文件:
克隆后,我的解决方案中没有“packages”文件夹,但在第一次尝试构建后出现,并且填充了dll。我的.gitignore文件:
#NuGet
packages/

我该如何让它工作?

编辑

构建输出(顺便说一下,构建需要几分钟时间,失败后整个VS都会冻结 - 我甚至无法复制错误消息):

当我右键单击任何引用并转到属性时,“路径”为空。

enter image description here

我的.csproj文件:

<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
      <Private>True</Private>
          <HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
    </Reference>

这个文件实际上存在于给定的位置。


你在VS的错误列表中观察到了哪些警告? - abatishchev
@abatishchev 请查看编辑部分。 - Andrzej Gis
你提交了你的packages.config文件吗? - Filip De Vos
@AndrzejGis 每次我克隆我的git存储库时,我的存储库中所有的nuget和二进制引用都会出现黄色感叹号。我需要在任何有问题的感叹号引用上点击属性,然后项目中的所有这些引用都会更新并删除感叹号。我需要为解决方案中的每个项目执行此操作。关闭并重新打开解决方案后,通常会构建。只需在VS中点击一些内容而不实际更改即可“修复”它。但我希望有一个更自动化的解决方案。 - djv
我不知道为什么,但当我再次运行Visual Studio时,问题就解决了。 - Ayub
1个回答

0

看起来一切都正常运行了。(除了黄色感叹号图标外,你还看到其他错误吗?)唯一奇怪的是剩下的黄色图标。这很可能只是一个刷新问题。要么在解决方案窗口顶部点击刷新(两个箭头),要么关闭并重新打开解决方案。你会发现黄色感叹号已经消失,一切都好。

或者,提交packages文件夹并删除.gitignore中的那一行,尽管我知道你之前选择不这样做。

编辑:

另一个想法:如果你在没有安装.NET 4.5或ASP.NET MVC 4的机器上打开解决方案,你也可能遇到这个问题。


请查看我的编辑,我提交了错误。"或者,提交packages文件夹并删除.gitignore中的行"我已经使用了这个解决方法,但我想这不是正确的方法。据我所知,避免在存储库中包含dll是NuGet的目标之一。 - Andrzej Gis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接