logic: update Visual Studio plugin to support Visual Studio 2017

* changed description text of Visual Studio plugin
* changed plugin install targets to include VS 2017
* add license file with MIT license
* updated vsix for deployment

* implement wrapper for all used classes of VCProjectEngine.dll since you cannot just use the oldest version of this
  assembly (see https://stackoverflow.com/questions/44288050/typecast-fails-when-visual-studio-extension-uses-reference-to-older-assembly).
* improved serialization and deserialization of compile commands and compilation databases.
* updated used JSON package
* rename CommandObject to CompileCommand
* changed implementation to keep non-existent file paths in cdb
* made methods of SolutionParser non-static
* replace spaces with tabs

* added IntegrationTests project
* configured tests to simulate a new instance of VisualStudio
* added cinder as test project for integration tests
* remove all absolute paths from expected output of integration tests

fortune cookie message = A stranger will bring great meaning to your life.
This commit is contained in:
malte_langkabel
2017-06-02 14:48:29 +02:00
parent aaca8618e2
commit 7010b9a6fb
289 changed files with 293635 additions and 22692 deletions
@@ -0,0 +1,27 @@
namespace VCProjectEngineWrapper
{
public static class VCProjectWrapperFactory
{
public static IVCProjectWrapper create(object wrapped)
{
IVCProjectWrapper wrapper = null;
wrapper = new VCProjectWrapperVs2017(wrapped);
if (wrapper == null || !wrapper.isValid())
{
wrapper = new VCProjectWrapperVs2015(wrapped);
}
if (wrapper == null || !wrapper.isValid())
{
wrapper = new VCProjectWrapperVs2013(wrapped);
}
if (wrapper == null || !wrapper.isValid())
{
wrapper = new VCProjectWrapperVs2012(wrapped);
}
return wrapper;
}
}
}