Installing Packages through Nuget - "Central Directory corrupt"
Solution 1
Edit 07/2017
A far easier method of solving this issue is be to just get Visual Studio to re-download the package -
- In Visual Studio open
Tools -> Options
. - Select
NuGet Package Manager
. - Ensure both
Allow NuGet to download missing packages
andAutomatically check for missing packages during build in Visual Studio
are both ticked. - Click
OK
. - In a file explorer window navigate into the projects' "packages" folder.
- Three options -
- Figure out which package is at fault as described in the original answer and delete it's folder.
- Move all the packages to a temporary location if you're unsure whether they're all still available in NuGet (you'll need to copy the missing ones back afterwards)
- Delete all the package folders if you are sure all your packages are still available in NuGet.
- Back in Visual Studio build your solution.
- Visual Studio should download all your packages.
Original Answer
Ok, the problem here was that the .nupkg
file for one package (found in project root/packges/package folder) had been corrupted at some point and had a size of zero.
I figured out which package was corrupt after attempting to manually install a random package using the package manager console -
Install-Package *package name*
which told me that there was a problem with a currently installed package -
Install-Package : An error occurred while retrieving package metadata for 'package name'....
From there I was able to fix it by doing the following -
- Navigate to the to the NuGet site
- Search for the project using the search facility at the top of the page
- Download the
.nupkg
file using the "Download" link on the left hand side (checking the version number). - Copy the downloaded file over the old one in the "packages" folder.
Solution 2
Remove all nuget packages under \packages\ ( i had multiple corrupted packages)
Go to your solution in Visual Studio and press "Restore Nuget Packages"
Rebuild your solution
Should be fixed :)
Solution 3
My problem was a corrupted zip file in the following folder: C:\Program Files (x86)\Microsoft SDKs\NuGetPackages
I cleared all these packages (offline repository)
Solution 4
1.First of all read the error.
2.Find the Directory listed on error console. 1.File Explorer ==>>
For Example, My Path is. C:\Code\Ex_Nikesh\20\packages In Packages Find Microsoft.SqlServer.Types.xx.xxx.xx.xx(xx indicates version number)
3.Inside the folder find Microsoft.SqlServer.Types.xx.xxx.xx.xx.nu(Nuget Package File [In My case file size is 0 KB]) Delete that File.
4.Now Download the File and Paste inside Microsoft.SqlServer.Types.xx.xxx.xx.xx Folder Click Here for Download Nuget File
John C
Not much to say really. Went to uni and hated database and web programming and a few years later I've found myself in a job doing database and web programming and I love it. It goes to prove that you don't really learn what a tech is like till you've working with it every day. Mostly working in C#, javascript, jQuery and HTML.
Updated on June 15, 2022Comments
-
John C almost 2 years
I'm trying to add a package to my project using NuGet (in VS2015). When I click the "Install" button I see
Downloading missing packages...
at the top of the screen with a progress bar.
After a moment the message is replaced with -
An error occurred while trying to restore packages: Central Directory corrupt.
with a "Restore" button at the end which does the same process.
Anyone have any idea how to fix this?
-
Zero3 about 8 yearsI just had this exact issue as well. Your solution worked, so thanks! Any idea what causes it?
-
John C about 8 years@Zero3 no idea I'm afraid. Not long before I found the issue I think I'd been having trouble with my git repository which the project was in but I don't think it was related.
-
Zero3 about 8 yearsMe too. Had some weird issues switching branches in Git through Visual Studio 2015, and had to force it with TortoiseGit by reverting all local changes. Might be related...
-
rollsch about 5 years"Error occurred while restoring NuGet packages: End of Central Directory record could not be found."
-
Mahesh S over 4 yearsFacing the same issue, and resolve it by the solution