繁体   English   中英

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

[英]Installing Packages through Nuget - "Central Directory corrupt"

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

正在下载丢失的包...

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

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

尝试恢复包时发生错误:中央目录已损坏。

最后有一个“恢复”按钮,它执行相同的过程。

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

编辑 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文件(在项目根/packges/包文件夹中找到)在某个时候已损坏并且大小为零。

在尝试使用包管理器控制台手动安装随机包后,我弄清楚了哪个包已损坏 -

Install-Package *package name*

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

安装包:检索“包名称”的包元数据时出错....

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

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

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

在 Visual Studio 中转到您的解决方案,然后按“恢复 Nuget 包”

重建您的解决方案

应该修复:)

1.首先阅读错误。

2.找到错误控制台上列出的目录。 1.文件资源管理器==>>

例如,我的路径是。 C:\Code\Ex_Nikesh\20\packages在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 文件夹中 点击这里下载 Nuget 文件

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM