-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Visual Studio 2015 #154
Conversation
seems like build fails because assemblies like |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First of all. I like this PR and we are merging it, for sure! 🎉
I would ask you to write a brief description of the solution in the PR for future reference, our future egos would love to read it.
Also, we are naming the classes, projects, ifs,... after the compiler version and I'm not sure if the origin of the problem is related to the compiler version or to the IDE... I don't know if one can install a version of the VS Build Tools and use it with a different version of the IDE, so maybe taking the version from ConanCompilerVersion
is not the best we can do.
These are just details, ok? So I want to know just your opinion if it is worth investigating it or not, these are not major issues.
…interfaces Signed-off-by: SSE4 <tomskside@gmail.com>
Signed-off-by: SSE4 <tomskside@gmail.com>
Signed-off-by: SSE4 <tomskside@gmail.com>
Signed-off-by: SSE4 <tomskside@gmail.com>
Signed-off-by: SSE4 <tomskside@gmail.com>
Signed-off-by: SSE4 <tomskside@gmail.com>
Signed-off-by: SSE4 <tomskside@gmail.com>
Signed-off-by: SSE4 <tomskside@gmail.com>
Signed-off-by: SSE4 <tomskside@gmail.com>
Signed-off-by: SSE4 <tomskside@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ready for a release! 🎉
closes #98
closes #66
closes #75
extension doesn't work in Visual Studio 2015 - it's because interface
Microsoft.VisualStudio.VCProject
has changed between versions14.0
and15.0
and it's no longer compatible.unfortunately, it's impossible to reference both versions of the same interface within single assembly. it's also impossible to solve it somehow in runtime, as at compile time expression like
project as VCProject
compiles differently depends onVCProject
interface version (or more precisely, its guid).the solution is pretty straightforward:
Microsoft.VisualStudio.VCProject
andMicrosoft.VisualStudio.VCProjectEngine
into small wrapper classes. for now, just 3 classes are needed:VCConfiguration
,VCProject
andVCPropertySheet
. (other classes might be easily added on demand using the same approach)Core
project, so classes are never referenced directly, and we can use late binding for them, so they are loosely coupled.VCProjectWrapper14
andVCProjectWrapper15
. both assemblies use the same sources (3 wrapper classes mentioned above), but reference to different versions ofMicrosoft.VisualStudio.VCProject
VCProjectWrapper
(from theEnvDTE.Project.object
) and use it going forward.Microsoft.VisualStudio.VCProject
(andVCProjectEngine
) from the main assembly.Microsoft.VisualStudio.VCProject
(andVCProjectEngine
) version 14.0 from NuGet, as we're building on VS2019 image which doesn't have older assemblies installed.