R#9 Extension Manager doesn't see local packages

I updated an open source plugin and when I start my experimental hive, I added a local folder for the nuget package I created, to the options for extension manager.  It displays nothing.  I downloaded packages from the resharper repo, and placed them in the same folder, and it doesn't see those packages either.  To test I added the same local folder to the regular VS nuget package manager, and it can see the packages.  What am I missing here?  Why won't it even list the other valid packages?

Also I noticed that my experimental hive is sharing settings with my regular instances.  I thought when the installer creates the hive it creates it's own settings?

Thanks in advance.

6 comments
Comment actions Permalink

The extension manager will only show packages that are compatible with that verison of ReSharper - so all packages that you're adding to the local directory must have a dependency on a package called "Wave", version 1.0, e.g. https://resharper-plugins.jetbrains.com/packages/CitizenMatt.Xunit/

Also, make sure the package source (defined in ReSharper -> Options -> Extension Manager) is enabled, and the path is correct. Try disabling any other existing feeds (only ".NET Products Gallery" should be selected for 9.0).

Installing ReSharper into a separate hive is about binary separation, not separation of settings. The point of it all is to allow having an instance of ReSharper that we can use while we're developing ReSharper itself and of course the other products - dotCover, dotTrace, etc. are all developed as "sub-platforms", essentially extensions into the ReSharper Platform. There are a bunch of things stored separately, mostly caches - a new version of ReSharper might require a new version of the cached data format, which would cause major problems (mostly continuously regenerating the caches) if they lived in the same location as the main hive's version of ReSharper. There are some settings that are kept separate, generally around extensions - what's enabled, etc. But the main settings file is shared across all hives. In fact, it's actually shared across all versions of all hosts (ReShaprer, dotPeek, etc.). The idea here is that your settings aren't lost when you upgrade to a new version, so the file is shared across versions (%APPDATA%\JetBrains\Shared\vAny\GlobalSettingsStorage.dotSettings). But because it's shared in this way, it also means it's shared in the test/debug hive.

0
Comment actions Permalink

Matt,

Thanks for your help.  What I was doing wrong was leaving a Dependency on ReSharper in the nuget package, thereby the extension manager would not see it.  I removed that and left just the Wave (1.0) dependency.  The next problem I had was that I didn't have a company name in the Id field.  I made the assumption that the nuget package itself needed a company name (e.g. CompanyName.Package.1.0.nupkg), so I corrected that and soon discovered I needed a ZoneMarker file because the plugin wasn't showing up in the Modules window when debugging.  So I added a ZoneMarker file and added the IRequire interface and it seems to be working now.  Well, I'm seeing errors and I'm able to debug at least.  but the process to update the plugin with modified code is brutal.

Thanks,

Josh

0
Comment actions Permalink

Yeah, the initial install is a little heavy handed. However, once it's installed, as long as you're not introducing new Actions, you can just copy the newly built .dll over the old one, which makes it significantly easier. See here: https://www.jetbrains.com/resharper/devguide/Extensions/Deployment/LocalInstallation.html#updating-the-extension-locally

0
Comment actions Permalink

Thanks again Matt,

The deployment from build doesn't seem to be working, but I did find the install location of the libraries and I just copy and past the updated libraries.
I'm actually trying to update the AgUnit silverlight unit test extension, the original author seems to have abandoned it.  And at my job we have a large silverlight code base that we haven't quite retired YET.

0
Comment actions Permalink

The downside to the automatic deployment is that it will only copy across a single file, not all dependencies. I'd like to make this a little smoother for 9.1.

If you set the HostFullIdentifier value to an invalid or empty value, the InstalledProductsDiscoveryTask will print a list of known installations, so you can find out what the right value is to put there. Behind the scenes, it's using the InstalledProductsDiscoveryTask to get this information, and the directories are put into an output property called Directories, so you could create your own msbuild target that gets the list of directories and copies whatever you want there on each build.

0
Comment actions Permalink

I have the same issue.

Trying to make a new extension project. I've added the latest stable SDK and Wave nuget dependencies, built my assembly, and generated the .nupkg file. But the Visual Studio experimental hive does not see my package. I added another nupkg from https://github.com/JetBrains/ExternalAnnotations, and I still do not see it in the Extension Manager.

Any ideas what I'm missing?

0

Please sign in to leave a comment.