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

问题描述 投票:9回答:4

我正在尝试使用NuGet(在VS2015中)为我的项目添加一个包。当我点击“安装”按钮时,我看到了

下载丢失的包...

在屏幕顶部有一个进度条。

过了一会儿,消息被替换为 -

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

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

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

visual-studio visual-studio-2015 nuget
4个回答
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应该下载所有包。

原始答案

好吧,这里的问题是一个包的.nupkg文件(在项目root / packges / package文件夹中找到)在某些时候已经损坏并且大小为零。

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

Install-Package *package name*

告诉我当前安装的包有问题 -

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

从那里我可以通过以下方式解决它 -

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

4
投票

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

转到Visual Studio中的解决方案,然后按“还原Nuget包”

重建您的解决方案

应该是固定:)


0
投票

1.首先阅读错误。

2.找到错误控制台上列出的目录。 1.文件浏览器== >>

例如,我的路径是。包中的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


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.