【问题标题】:Nuget doesn't recognize installed packages after upgrade to NuGet 2.7升级到 NuGet 2.7 后,Nuget 无法识别已安装的包
【发布时间】:2013-09-13 08:00:06
【问题描述】:

我刚刚升级到 NuGet 2.7 并关注了Migrate to automatic package restore walkthrough。之后,我注意到 NuGet 无法正确识别已安装的包:

  • 构建未下载软件包,因此构建失败。

  • 在项目中选择“管理 NuGet 包”时,该包未列在“已安装”下。

  • 浏览在线软件包时,已安装的软件包上有一个绿色勾号,因此我无法安装它们,即使“已安装”选项卡没有列出它们。

我得出的结论是,NuGet 2.7 仅将这些包识别为安装了一半,因此我手动从 packages.config 中删除了一行,然后重新安装了该包。这显示了 csproj 文件中的一个有趣的变化(差异视图):

  -  <Reference Include="xunit, Version=1.9.2.1705, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
  -    <SpecificVersion>False</SpecificVersion>
  +  <Reference Include="xunit">
       <HintPath>..\packages\xunit.1.9.2\lib\net20\xunit.dll</HintPath>
     </Reference>

前两行被第三行替换。之后,该软件包再次正确安装。

那么我怎样才能在不为每个项目的每个包执行上述过程的情况下再次正确安装我的包?

【问题讨论】:

    标签: visual-studio-2012 nuget nuget-package-restore


    【解决方案1】:

    我没有找到一个解决方案来一次恢复所有包的正确行为。但是可以使用命令行为所有项目重新安装单个包:

    Update-Package -Reinstall <package-name>
    

    之后,该软件包被正确识别为已安装并将正确恢复。不过这种方法还是比较麻烦,如果有人有更好的方法就好了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-01
      • 2016-07-29
      • 1970-01-01
      • 2017-07-26
      • 2019-04-15
      • 2014-02-15
      相关资源
      最近更新 更多