agileobjects / ReadableExpressions

A library and Debugger Visualizer which translates Expression Trees into readable C# source code. .NET 3.5+ and .NET Standard 1.0+.
MIT License
396 stars 22 forks source link

VS 2017 support #8

Closed lbargaoanu closed 7 years ago

SteveWilkes commented 7 years ago

This is definitely on the radar - MS helpfully changed 2017's install path from the patterns they've used for Visual Studio since v10. The visualizer assembly and extensionmanifest.vsix for Visual Studio 15 work fine in 2017, so if you have from the 2017 preview you can copy:

Program Files (x86)\Microsoft Visual Studio 15.0\Common7\Packages\Debugger\Visualizers\AgileObjects.ReadableExpressions.Visualizers.Vs15.dll

...and

Program Files (x86)\Microsoft Visual Studio 15.0\Common7\IDE\Extensions\AgileObjects

...to:

Program Files (x86)\Microsoft Visual Studio\2017\{Version}\Common7\Packages\Debugger\Visualizers\AgileObjects.ReadableExpressions.Visualizers.Vs15.dll

...and

Program Files (x86)\Microsoft Visual Studio\2017\{Version}\Common7\IDE\Extensions\AgileObjects

...where {Version} is the version of VS2017 you have installed. Note that in the second case the entire AgileObjects directory needs to be copied.

Beyond that I'll be looking to fix this and get a new release of the installer out later this week.

lbargaoanu commented 7 years ago

Already did :) Or anyway, something like that. I nedeed some binding redirects, but it seems to work. Thanks.

SteveWilkes commented 7 years ago

I've just uploaded installer version 1.8.3 to VS Marketplace, now compatible with VS10 -> 15, including VS2017 :)

lbargaoanu commented 7 years ago

Cool!

lbargaoanu commented 7 years ago

Well, the kit doesn't work for me. And AgileObjects.ReadableExpressions.Visualizers.Vs15.dll references the old VS assemblies. I guess it worked in preview, but not now, at least that's what I see :)

SteveWilkes commented 7 years ago

Oh dear. Thanks for letting me know - I'll check it out later.

SteveWilkes commented 7 years ago

I'm not sure what happened to the v15 DebuggerVisualizers reference, but I've updated it now, tested it and it worked for me. I've uploaded a v1.8.4 installer to VS marketplace.

If that one doesn't work for you, would you mind letting me know what version of VS 2017 you're using? I've compiled it all against Professional which now has a version-specific install path, so I wonder if that's related...

lbargaoanu commented 7 years ago

Enterprise and "c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Packages\Debugger\Visualizers" doesn't have the dll.

lbargaoanu commented 7 years ago

And for VS 2015, I don't see 1.8.4 in the version.

SteveWilkes commented 7 years ago

Would you mind sending me an equivalent screenshot of the following from your registry?

regedit

It's these keys:

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\VisualStudio\ HKEY_LOCALMACHINE\SOFTWARE\WOW6432Node\VisualStudio{uniqueId}

I updated the installer to expect keys in that format, so if I could see what structure you have, that would be very helpful.

I'm not sure what happened on VS2015 - it worked fine for me...

lbargaoanu commented 7 years ago

image

SteveWilkes commented 7 years ago

Thanks! Your installation doesn't have a 15_{uniqueId} key in the VisualStudio key, so I'll have to update the installer to work without that.

Cheers :)

SteveWilkes commented 7 years ago

I've just pushed out v1.8.5 with a new installer on VS Marketplace. Please could you give it a go and let me know how you get on? Both fresh installs and upgrades work for me.

lbargaoanu commented 7 years ago

As far as I can tell it still doesn't work because it references the old VS dll-s. If I keep my redirect in place, it seems to work.

SteveWilkes commented 7 years ago

Hmmm - I don't understand what's happening there, because the vs15 visualizer compiles against the latest assembly. The reference in the project is:

<Reference Include="Microsoft.VisualStudio.DebuggerVisualizers, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\..\..\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.VisualStudio.DebuggerVisualizers.dll</HintPath>
</Reference>
lbargaoanu commented 7 years ago

LGTM