Cached nuget packages causing you problems?

Short version

If you are having problems with nuget packages and think it might be related to local caching delete packages from these directories -

%LocalAppData%\NuGet\Cache and %userprofile%\.nuget\packages\

Long version

I was making nuget package, lets call it Foo, for my own use, not one that I was going to distribute publicly, but I was putting in on MyGet.

I had a few classes in it and after making the nuget package, I uploaded it to MyGet. I then switched to the Business solution and referenced this newly created nuget package.

After doing a little bit of work, I noticed that I had incorrectly made a class internal rather than public in the Foo nuget package.

No problem, back to the Foo solution where I was making the library, change the class to public, rebuild, and remake the nuget package. I didn’t want to increment the version number, so I left it at 1.0.0. On MyGet I deleted the old package and then uploaded the new one.

Here’s what I tried and didn’t work -

- In the Business solution referencing the Foo nuget package, I uninstalled Foo and then reinstalled it.

- But Visual Studio still reported that the class was inaccessible!

- Uninstall and reinstall again, same problem!!

- Delete the Foo directory from the packages directory beside the solution file, remove the Foo line from the packages.config. Reinstall Foo. Same problem!!!

- Recomplie Foo, delete Foo from MyGet, reupload Foo to MyGet. Reinstall Foo. Still inaccessible!!!!

- WTF!!!!!

And this is what works -

  • Download the Foo nuget package directly from MyGet and reference it directly. Success! There must be a local cache that Visual Studio is using!!!!!!

Yes there are, I found two -

%LocalAppData%\NuGet\Cache and %userprofile%\.nuget\packages\

Delete the offending nuget package; back in Visual Studio I can now successfully install the nuget package.

In general avoid using the same package version number when uploading a new package to MyGet.

comments powered by Disqus