Skip to content
This repository was archived by the owner on Jul 15, 2023. It is now read-only.

Conversation

@hubuk
Copy link
Contributor

@hubuk hubuk commented May 15, 2015

Added referenced assemblies from VS2010 and VS2012 to fix Contracts Editor Extensions compilation. Updated VS extension projects to not trigger one-way upgrade warning.
Possible fix for issue #4.

@sharwell
Copy link
Contributor

I need to take a closer look at this. I have a set of NuGet packages designed specifically to address these concerns with greater assurance, all without adding the binaries to source control.

I'm 👎 on this particular approach, not because it won't work but because there is an easier, cleaner way.

I'll add more information soon.

@sharwell
Copy link
Contributor

@hubuk I made an initial pass through this. I plan to resolve this issue as follows:

  1. Use a single project/assembly for the Adornments code targeting Visual Studio 2010+. This is easy since the project does not depend on any newer/incompatible APIs.
  2. Use a single project/assembly for the ContractAdornments code targeting Visual Studio 2010+. The only difficult part here is a dependency on the C# language service which is specific to specific versions of Visual Studio. To resolve this, I plan to use exactly the same approach that I used for my Inheritance Margin extension (which depends on exactly the same set of assemblies).
    • Move the code which requires the C# language service to a set of small assemblies that are tied to specific versions of Visual Studio
    • Load the correct assembly at runtime

@hubuk
Copy link
Contributor Author

hubuk commented Jun 15, 2015

@sharwell Your approach seams to be nice and clean. I suspected that there are no differences between these projects other than referenced assemblies. This can be handled out of the box thanks to version redirections in devenv.exe.config (except laguage services as you mentioned). I don't know if Adornments* and ContractAdornments* projects are using all the declared references but the list is quite big. It is also worth mentioning that following assemblies are missing from the repsository:
Microsoft.VisualStudio.CoreUtility.dll
Microsoft.VisualStudio.Editor.dll
Microsoft.VisualStudio.Language.StandardClassification.dll
Microsoft.VisualStudio.Text.Data.dll
Microsoft.VisualStudio.Text.Logic.dll
Microsoft.VisualStudio.Text.UI.dll
Microsoft.VisualStudio.Text.UI.Wpf.dll

It would be best to have Visual Studio extension libraries accessible via NuGet but unfortunately Microsoft has not published them for dev10.

@sharwell
Copy link
Contributor

I suspected that there are no differences between these projects other than referenced assemblies.

There is not. This will be a relatively easy update.

It would be best to have Visual Studio extension libraries accessible via NuGet but unfortunately Microsoft has not published them for dev10.

@hubuk Microsoft has not. But I have.

Edit: This is the set of packages supported by Visual Studio 2010.

@sharwell
Copy link
Contributor

This is (presumably) superseded by #66.

@hubuk
Copy link
Contributor Author

hubuk commented Jun 18, 2015

Yup, closing it now.

@hubuk hubuk closed this Jun 18, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants