通过Nuget安装软件包 - "中央目录损坏"

时间:2016-01-11 12:51:56

标签: visual-studio visual-studio-2015 nuget

我正在尝试使用NuGet(在VS2015中)向我的项目添加包。当我点击"安装"我看到按钮

  

下载丢失的包......

位于屏幕顶部,带有进度条。

片刻之后,消息将替换为 -

  

尝试还原包时发生错误:中央目录损坏。

使用"恢复"最后的按钮执行相同的过程。

任何人都知道如何解决这个问题?

4 个答案:

答案 0 :(得分:17)

编辑07/2017

解决此问题的一种更简单的方法是让Visual Studio重新下载包 -

  1. 在Visual Studio中打开Tools -> Options
  2. 选择NuGet Package Manager
  3. 确保勾选Allow NuGet to download missing packagesAutomatically check for missing packages during build in Visual Studio
  4. 点击OK
  5. 在文件资源管理器窗口中,导航到项目的“packages”文件夹。
  6. 三种选择 -
    • 找出原始答案中描述的哪个包有问题并删除其'文件夹。
    • 如果您不确定NuGet中是否仍然可以使用这些包,那么将所有包移到临时位置(之后您需要将丢失的包复制回来)
    • 如果您确定所有软件包在NuGet中仍然可用,请删除所有软件包文件夹。
  7. 返回Visual Studio构建解决方案。
  8. Visual Studio应下载所有软件包。
  9. 原始答案

    好的,这里的问题是一个软件包的.nupkg文件(在项目根目录 / packges / 软件包文件夹中找到)在某些软件包中已损坏点,大小为零。

    尝试使用软件包管理器控制台手动安装随机软件包后,我发现哪个软件包已损坏 -

    Install-Package *package name*
    

    告诉我当前安装的软件包存在问题 -

      

    Install-Package:检索'package name'的包元数据时发生错误....

    从那里我可以通过执行以下操作来修复它 -

    1. 导航至NuGet site
    2. 使用页面顶部的搜索工具搜索项目
    3. 使用左侧的“下载”链接下载.nupkg文件(查看版本号)。
    4. 将下载的文件复制到“packages”文件夹中的旧文件。

答案 1 :(得分:4)

删除\ packages \下的所有nuget包(我有多个损坏的包)

转到Visual Studio中的解决方案,然后按“Restore Nuget Packages”

重建您的解决方案

应该修复:)

答案 2 :(得分:0)

1。首先读取错误。

2。找到错误控制台上列出的目录。 1.File Explorer == >>

例如,“我的路径”是。 C:\ Code \ Ex_Nikesh \ 20 \ packages 在包中找到 Microsoft.SqlServer.Types.xx.xxx.xx.xx (xx表示版本号)

3。在文件夹内找到 Microsoft.SqlServer.Types.xx.xxx.xx.xx.nu (Nuget程序包文件[以我为例,文件大小为0 KB]) 删除该文件。

4. 现在在Microsoft.SqlServer.Types.xx.xxx.xx.xx文件夹中下载文件并粘贴 Click Here for Download Nuget File

答案 3 :(得分:0)

我的问题是以下文件夹中的zip文件损坏: C:\ Program Files(x86)\ Microsoft SDKs \ NuGetPackages

我清除了所有这些软件包(离线存储库)