diff options
author | Miguel Costa <miguel.costa@qt.io> | 2018-12-17 19:00:52 +0100 |
---|---|---|
committer | Miguel Costa <miguel.costa@qt.io> | 2019-01-07 14:32:13 +0000 |
commit | cdd36735509938a4f4feb46ef352d75f2a6e9909 (patch) | |
tree | 526e13842bbb587f5e64b68ca564113d61bfd987 /src | |
parent | 1759c2f7bf66e6f5cc032df6764b51d9a96f6a57 (diff) |
Convert package to AsyncPackage
As of VS 2019, all VS extension packages are required to support
background load and implement asynchronous initialization. This is
achieved by having the package class inherit from the AsyncPackage
class and overriding the InitializeAsync method. Code that obtains
references to services from the Visual Studio COM interfaces must
execute in the main (UI) thread, otherwise dead-locks may occur.
Task-number: QTVSADDINBUG-572
Change-Id: Iaaa5fcd93efd92e51a9ce49dbcd3a1f3f8b89a95
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'src')
34 files changed, 479 insertions, 252 deletions
diff --git a/src/config/12.0/qtvstools.targets b/src/config/12.0/qtvstools.targets index 9012df1c..260c8e16 100644 --- a/src/config/12.0/qtvstools.targets +++ b/src/config/12.0/qtvstools.targets @@ -6,34 +6,33 @@ </PropertyGroup> <ItemGroup Condition=" '$(VisualStudioVersion)' == '12.0' "> - <Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="EnvDTE80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.CoreUtility, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Language.StandardClassification, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.ExtensionsExplorer.UI, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Immutable.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Immutable.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.TemplateWizardInterface, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.Data, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.Logic, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.UI, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.UI.Wpf, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.VCCodeModel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.VCProjectEngine, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.ComponentModelHost, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Debugger.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Debugger.InteropA, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Editor, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> - <EmbedInteropTypes>True</EmbedInteropTypes> - </Reference> - <Reference Include="Microsoft.VisualStudio.TextManager.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="EnvDTE80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.ComponentModelHost, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.CoreUtility, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Debugger.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Debugger.InteropA, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Editor, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Language.StandardClassification, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.ExtensionsExplorer.UI, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Immutable.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Immutable.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.TemplateWizardInterface, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.Data, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.Logic, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.UI, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.UI.Wpf, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.TextManager.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Threading, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.VCCodeModel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.VCProjectEngine, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> <Reference Include="PresentationCore" /> <Reference Include="PresentationFramework" /> <Reference Include="System" /> diff --git a/src/config/14.0/qtvstools.targets b/src/config/14.0/qtvstools.targets index 1a4db24a..f130e977 100644 --- a/src/config/14.0/qtvstools.targets +++ b/src/config/14.0/qtvstools.targets @@ -6,35 +6,36 @@ </PropertyGroup> <ItemGroup Condition=" '$(VisualStudioVersion)' == '14.0' "> - <Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="EnvDTE80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.CoreUtility, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Language.StandardClassification, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.ExtensionsExplorer.UI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.14.0, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Immutable.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Immutable.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.TemplateWizardInterface, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.Data, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.Logic, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.UI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.UI.Wpf, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Utilities, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.VCCodeModel, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.VCProjectEngine, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.ComponentModelHost, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Debugger.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Debugger.InteropA, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Editor, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> - <EmbedInteropTypes>True</EmbedInteropTypes> - </Reference> - <Reference Include="Microsoft.VisualStudio.TextManager.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="EnvDTE80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.ComponentModelHost, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.CoreUtility, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Debugger.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Debugger.InteropA, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Editor, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Language.StandardClassification, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.ExtensionsExplorer.UI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.14.0, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Immutable.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Immutable.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Immutable.14.0, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.14.0.DesignTime, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.TemplateWizardInterface, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.Data, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.Logic, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.UI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.UI.Wpf, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.TextManager.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Threading, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Utilities, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.VCCodeModel, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.VCProjectEngine, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> <Reference Include="PresentationCore" /> <Reference Include="PresentationFramework" /> <Reference Include="System" /> diff --git a/src/config/15.0/qtvstools.targets b/src/config/15.0/qtvstools.targets index 638f50a8..ff381b3c 100644 --- a/src/config/15.0/qtvstools.targets +++ b/src/config/15.0/qtvstools.targets @@ -6,36 +6,37 @@ </PropertyGroup> <ItemGroup Condition=" '$(VisualStudioVersion)' == '15.0' "> - <Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="EnvDTE80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.CoreUtility, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Language.StandardClassification, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.15.0, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Immutable.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Immutable.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime, Version=15.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"/> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.Framework, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.TemplateWizardInterface, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.Data, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.Logic, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.UI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.UI.Wpf, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Utilities, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.VCCodeModel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.VCProjectEngine, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.ComponentModelHost, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Debugger.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Debugger.InteropA, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Editor, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> - <EmbedInteropTypes>True</EmbedInteropTypes> - </Reference> - <Reference Include="Microsoft.VisualStudio.TextManager.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="EnvDTE80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.ComponentModelHost, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.CoreUtility, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Debugger.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Debugger.InteropA, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Editor, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Language.StandardClassification, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.15.0, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Framework, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Immutable.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Immutable.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.14.0.DesignTime, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"/> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime, Version=15.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"/> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.15.6.DesignTime, Version=15.6.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"/> + <Reference Include="Microsoft.VisualStudio.TemplateWizardInterface, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.Data, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.Logic, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.UI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.UI.Wpf, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.TextManager.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Threading, Version=15.8.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Utilities, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.VCCodeModel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.VCProjectEngine, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> <Reference Include="PresentationCore" /> <Reference Include="PresentationFramework" /> <Reference Include="System" /> diff --git a/src/config/16.0/qtvstools.targets b/src/config/16.0/qtvstools.targets index cb9e7b32..64801ad4 100644 --- a/src/config/16.0/qtvstools.targets +++ b/src/config/16.0/qtvstools.targets @@ -6,36 +6,37 @@ </PropertyGroup> <ItemGroup Condition=" '$(VisualStudioVersion)' == '16.0' "> - <Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="EnvDTE80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.CoreUtility, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Language.StandardClassification, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.15.0, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Immutable.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Immutable.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime, Version=15.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"/> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Shell.Framework, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.TemplateWizardInterface, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.Data, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.Logic, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.UI, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Text.UI.Wpf, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Utilities, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.VCCodeModel, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.VCProjectEngine, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.ComponentModelHost, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Debugger.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Debugger.InteropA, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> - <Reference Include="Microsoft.VisualStudio.Editor, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> - <Reference Include="Microsoft.VisualStudio.Shell.Interop.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> - <EmbedInteropTypes>True</EmbedInteropTypes> - </Reference> - <Reference Include="Microsoft.VisualStudio.TextManager.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="EnvDTE80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.ComponentModelHost, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.CoreUtility, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Debugger.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Debugger.InteropA, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Editor, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Language.StandardClassification, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.15.0, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Framework, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Immutable.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Immutable.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.14.0.DesignTime, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"/> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime, Version=15.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"/> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.15.6.DesignTime, Version=15.6.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"/> + <Reference Include="Microsoft.VisualStudio.TemplateWizardInterface, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.Data, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.Logic, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.UI, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.UI.Wpf, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.TextManager.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Threading, Version=15.8.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Utilities, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.VCCodeModel, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.VCProjectEngine, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> <Reference Include="PresentationCore" /> <Reference Include="PresentationFramework" /> <Reference Include="System" /> diff --git a/src/qtprojectlib/QtProjectLib.csproj b/src/qtprojectlib/QtProjectLib.csproj index ed2c8bd5..7b39a1cb 100644 --- a/src/qtprojectlib/QtProjectLib.csproj +++ b/src/qtprojectlib/QtProjectLib.csproj @@ -98,6 +98,7 @@ <Compile Include="Statics.cs" /> <Compile Include="TemplateType.cs" /> <Compile Include="VersionInformation.cs" /> + <Compile Include="VisualStudio\VsServiceProvider.cs" /> <Compile Include="WaitDialog.cs" /> </ItemGroup> <ItemGroup> diff --git a/src/qtprojectlib/VisualStudio/VsServiceProvider.cs b/src/qtprojectlib/VisualStudio/VsServiceProvider.cs new file mode 100644 index 00000000..d8a24c01 --- /dev/null +++ b/src/qtprojectlib/VisualStudio/VsServiceProvider.cs @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt VS Tools. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +using Microsoft.VisualStudio.Shell; +using System; +using System.Collections.Concurrent; +using System.Threading.Tasks; + +namespace QtVsTools.VisualStudio +{ + using ServiceType = Tuple<Type, Type>; + + public interface IVsServiceProvider + { + I GetService<T, I>() where T : class where I : class; +#if !VS2013 + Task<I> GetServiceAsync<T, I>() where T : class where I : class; +#endif + } + + public static class VsServiceProvider + { + public static IVsServiceProvider Instance { get; set; } + + static ConcurrentDictionary<ServiceType, object> services + = new ConcurrentDictionary<ServiceType, object>(); + + public static I GetService<I>() + where I : class + { + return GetService<I, I>(); + } + + public static I GetService<T, I>() + where T : class + where I : class + { + if (Instance == null) + return null; + + object serviceObj; + if (services.TryGetValue(new ServiceType(typeof(T), typeof(I)), out serviceObj)) + return serviceObj as I; + + var serviceInterface = Instance.GetService<T, I>(); + services.TryAdd(new ServiceType(typeof(T), typeof(I)), serviceInterface); + return serviceInterface; + } + +#if !VS2013 + public static async Task<I> GetServiceAsync<I>() + where I : class + { + return await GetServiceAsync<I, I>(); + } + + public static async Task<I> GetServiceAsync<T, I>() + where T : class + where I : class + { + if (Instance == null) + return null; + + object serviceObj; + if (services.TryGetValue(new ServiceType(typeof(T), typeof(I)), out serviceObj)) + return serviceObj as I; + + var serviceInterface = await Instance.GetServiceAsync<T, I>(); + services.TryAdd(new ServiceType(typeof(T), typeof(I)), serviceInterface); + return serviceInterface; + } +#endif + } +} diff --git a/src/qtprojectlib/WaitDialog.cs b/src/qtprojectlib/WaitDialog.cs index 0818320d..4488d2f4 100644 --- a/src/qtprojectlib/WaitDialog.cs +++ b/src/qtprojectlib/WaitDialog.cs @@ -35,6 +35,7 @@ using Microsoft.VisualStudio; using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.VCProjectEngine; +using QtVsTools.VisualStudio; namespace QtProjectLib { @@ -76,8 +77,8 @@ namespace QtProjectLib static WaitDialog Create() { if (factory == null) { - factory = (IVsThreadedWaitDialogFactory)Package - .GetGlobalService(typeof(SVsThreadedWaitDialogFactory)); + factory = VsServiceProvider + .GetService<SVsThreadedWaitDialogFactory, IVsThreadedWaitDialogFactory>(); if (factory == null) return null; } diff --git a/src/qtvstools/AddQtVersionDialog.cs b/src/qtvstools/AddQtVersionDialog.cs index 20c78709..53e72d75 100644 --- a/src/qtvstools/AddQtVersionDialog.cs +++ b/src/qtvstools/AddQtVersionDialog.cs @@ -27,8 +27,10 @@ ****************************************************************************/ using Microsoft.VisualStudio.Settings; +using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.Shell.Settings; using QtProjectLib; +using QtVsTools.VisualStudio; using System; using System.IO; using System.Linq; @@ -259,7 +261,7 @@ namespace QtVsTools private void browseButton_Click(object sender, EventArgs e) { using (var fd = new FolderBrowserDialog()) { - var settingsManager = new ShellSettingsManager(Vsix.Instance); + var settingsManager = VsShellSettings.Manager; var store = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings); fd.Description = SR.GetString("SelectQtPath"); diff --git a/src/qtvstools/DteEventsHandler.cs b/src/qtvstools/DteEventsHandler.cs index af446568..3e0051a6 100644 --- a/src/qtvstools/DteEventsHandler.cs +++ b/src/qtvstools/DteEventsHandler.cs @@ -95,9 +95,6 @@ namespace QtVsTools dispId_VCCLCompilerTool_PreprocessorDefinitions = GetPropertyDispId(typeof(VCCLCompilerTool), "PreprocessorDefinitions"); dispId_VCCLCompilerTool_AdditionalIncludeDirectories = GetPropertyDispId(typeof(VCCLCompilerTool), "AdditionalIncludeDirectories"); InitializeVCProjects(); - - DefaultEditorsClient.Initialize(this); - DefaultEditorsClient.Instance.Listen(); } void debugStartEvents_BeforeExecute(string Guid, int ID, object CustomIn, object CustomOut, ref bool CancelDefault) @@ -205,8 +202,6 @@ namespace QtVsTools if (vcProjectEngineEvents != null) vcProjectEngineEvents.ItemPropertyChange -= OnVCProjectEngineItemPropertyChange; - - DefaultEditorsClient.Instance.Shutdown(); } public void OnBuildProjConfigBegin(string projectName, string projectConfig, string platform, string solutionConfig) diff --git a/src/qtvstools/QML/Classification/QmlExpressionEvalClassifier.cs b/src/qtvstools/QML/Classification/QmlExpressionEvalClassifier.cs index 33390979..9ed28d30 100644 --- a/src/qtvstools/QML/Classification/QmlExpressionEvalClassifier.cs +++ b/src/qtvstools/QML/Classification/QmlExpressionEvalClassifier.cs @@ -42,6 +42,7 @@ using Microsoft.VisualStudio.Text.Tagging; using Microsoft.VisualStudio.TextManager.Interop; using Microsoft.VisualStudio.Utilities; using QtVsTools.Qml.Syntax; +using QtVsTools.VisualStudio; namespace QtVsTools.Qml.Classification { @@ -100,12 +101,12 @@ namespace QtVsTools.Qml.Classification this.textView = textView; this.buffer = buffer; - debugger = Package.GetGlobalService(typeof(IVsDebugger)) as IVsDebugger; + debugger = VsServiceProvider.GetService<IVsDebugger>(); if (debugger == null) return false; - var componentModel = Package - .GetGlobalService(typeof(SComponentModel)) as IComponentModel; + var componentModel = VsServiceProvider + .GetService<SComponentModel, IComponentModel>(); if (componentModel == null) return false; diff --git a/src/qtvstools/QML/Debugging/AD7/QmlDebugAD7Program.cs b/src/qtvstools/QML/Debugging/AD7/QmlDebugAD7Program.cs index a1520b42..66fd5102 100644 --- a/src/qtvstools/QML/Debugging/AD7/QmlDebugAD7Program.cs +++ b/src/qtvstools/QML/Debugging/AD7/QmlDebugAD7Program.cs @@ -37,6 +37,7 @@ using Microsoft.VisualStudio; using Microsoft.VisualStudio.Debugger.Interop; using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; +using QtVsTools.VisualStudio; namespace QtVsTools.Qml.Debug.AD7 { @@ -112,7 +113,7 @@ namespace QtVsTools.Qml.Debug.AD7 if (Debugger == null) return false; - VsDebugger = Package.GetGlobalService(typeof(IVsDebugger)) as IVsDebugger; + VsDebugger = VsServiceProvider.GetService<IVsDebugger>(); if (VsDebugger != null) VsDebugger.AdviseDebugEventCallback(this as IDebugEventCallback2); vsDebuggerThreadDispatcher = Dispatcher.CurrentDispatcher; diff --git a/src/qtvstools/QML/Debugging/QmlDebugLauncher.cs b/src/qtvstools/QML/Debugging/QmlDebugLauncher.cs index 0230ef05..571dc8af 100644 --- a/src/qtvstools/QML/Debugging/QmlDebugLauncher.cs +++ b/src/qtvstools/QML/Debugging/QmlDebugLauncher.cs @@ -41,6 +41,7 @@ using QtProjectLib.QtMsBuild; namespace QtVsTools.Qml.Debug { using AD7; + using VisualStudio; class Launcher : Disposable, IDebugEventCallback2 { @@ -51,8 +52,8 @@ namespace QtVsTools.Qml.Debug public static void Initialize() { Instance = new Launcher(); - Instance.debugger = Package.GetGlobalService(typeof(IVsDebugger)) as IVsDebugger; - Instance.debugger4 = Package.GetGlobalService(typeof(IVsDebugger)) as IVsDebugger4; + Instance.debugger = VsServiceProvider.GetService<IVsDebugger>(); + Instance.debugger4 = VsServiceProvider.GetService<IVsDebugger, IVsDebugger4>(); if (Instance.debugger != null && Instance.debugger4 != null) Instance.debugger.AdviseDebugEventCallback(Instance); } diff --git a/src/qtvstools/QtHelpMenu.cs b/src/qtvstools/QtHelpMenu.cs index fc545884..9e94c9f0 100644 --- a/src/qtvstools/QtHelpMenu.cs +++ b/src/qtvstools/QtHelpMenu.cs @@ -32,6 +32,7 @@ using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.Shell.Settings; using QtProjectLib; +using QtVsTools.VisualStudio; using System; using System.Collections.Generic; using System.ComponentModel.Design; @@ -69,9 +70,8 @@ namespace QtVsTools throw new ArgumentNullException("package"); package = pkg; - var commandService = ServiceProvider.GetService(typeof(IMenuCommandService)) - as OleMenuCommandService; - + var commandService = VsServiceProvider + .GetService<IMenuCommandService, OleMenuCommandService>(); if (commandService == null) return; @@ -149,7 +149,7 @@ namespace QtVsTools async void F1QtHelpCallback(object sender, EventArgs args) { try { - var dte = ServiceProvider.GetService(typeof(SDTE)) as DTE; + var dte = VsServiceProvider.GetService<SDTE, DTE>(); var objTextDocument = dte.ActiveDocument.Object() as TextDocument; var keyword = string.Empty; @@ -199,7 +199,7 @@ namespace QtVsTools if (qchFiles.Length == 0) return; - var settingsManager = new ShellSettingsManager(Instance.ServiceProvider); + var settingsManager = VsShellSettings.Manager; var store = settingsManager.GetReadOnlySettingsStore(SettingsScope.UserSettings); var offline = store.GetBoolean(Statics.HelpPreferencePath, Statics.HelpPreferenceKey, true); @@ -294,7 +294,7 @@ namespace QtVsTools if (command == null) return; - var settingsManager = new ShellSettingsManager(ServiceProvider); + var settingsManager = VsShellSettings.Manager; var store = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings); store.CreateCollection(Statics.HelpPreferencePath); @@ -308,7 +308,7 @@ namespace QtVsTools if (command == null) return; - var settingsManager = new ShellSettingsManager(ServiceProvider); + var settingsManager = VsShellSettings.Manager; var store = settingsManager.GetReadOnlySettingsStore(SettingsScope.UserSettings); switch (command.CommandID.ID) { diff --git a/src/qtvstools/QtItemContextMenu.cs b/src/qtvstools/QtItemContextMenu.cs index dc61687b..a84a5837 100644 --- a/src/qtvstools/QtItemContextMenu.cs +++ b/src/qtvstools/QtItemContextMenu.cs @@ -29,6 +29,7 @@ using EnvDTE; using Microsoft.VisualStudio.Shell; using QtProjectLib; +using QtVsTools.VisualStudio; using System; using System.ComponentModel.Design; @@ -93,8 +94,8 @@ namespace QtVsTools m_package = package; - var commandService = ServiceProvider.GetService(typeof(IMenuCommandService)) - as OleMenuCommandService; + var commandService = VsServiceProvider + .GetService<IMenuCommandService, OleMenuCommandService>(); if (commandService == null) return; diff --git a/src/qtvstools/QtMainMenu.cs b/src/qtvstools/QtMainMenu.cs index 92237dca..b68700fa 100644 --- a/src/qtvstools/QtMainMenu.cs +++ b/src/qtvstools/QtMainMenu.cs @@ -29,6 +29,7 @@ using EnvDTE; using Microsoft.VisualStudio.Shell; using QtProjectLib; +using QtVsTools.VisualStudio; using System; using System.ComponentModel.Design; using System.Windows.Forms; @@ -108,8 +109,8 @@ namespace QtVsTools m_package = package; - var commandService = ServiceProvider.GetService(typeof(IMenuCommandService)) - as OleMenuCommandService; + var commandService = VsServiceProvider + .GetService<IMenuCommandService, OleMenuCommandService>(); if (commandService == null) return; diff --git a/src/qtvstools/QtMsBuildConverter.cs b/src/qtvstools/QtMsBuildConverter.cs index d128578f..f161facb 100644 --- a/src/qtvstools/QtMsBuildConverter.cs +++ b/src/qtvstools/QtMsBuildConverter.cs @@ -35,6 +35,7 @@ using Microsoft.VisualStudio; using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.VCProjectEngine; using QtProjectLib; +using QtVsTools.VisualStudio; namespace QtVsTools { @@ -154,15 +155,11 @@ namespace QtVsTools } } - var serviceProvider = Vsix.Instance as IServiceProvider; - if (serviceProvider == null) - return ErrorMessage( - string.Format(SR.GetString("ErrorConvertingProject"), project.Name)); var vcProject = project.Object as VCProject; if (vcProject == null) return ErrorMessage( string.Format(SR.GetString("ErrorConvertingProject"), project.Name)); - var solution = serviceProvider.GetService(typeof(SVsSolution)) as IVsSolution4; + var solution = VsServiceProvider.GetService<SVsSolution, IVsSolution4>(); if (solution == null) return ErrorMessage( string.Format(SR.GetString("ErrorConvertingProject"), project.Name)); diff --git a/src/qtvstools/QtProjectContextMenu.cs b/src/qtvstools/QtProjectContextMenu.cs index a38c2f88..220599dd 100644 --- a/src/qtvstools/QtProjectContextMenu.cs +++ b/src/qtvstools/QtProjectContextMenu.cs @@ -33,6 +33,7 @@ using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.VCProjectEngine; using QtProjectLib; using QtProjectWizard; +using QtVsTools.VisualStudio; using System; using System.ComponentModel.Design; using System.Windows.Forms; @@ -111,8 +112,8 @@ namespace QtVsTools m_package = package; - var commandService = ServiceProvider.GetService(typeof(IMenuCommandService)) - as OleMenuCommandService; + var commandService = VsServiceProvider + .GetService<IMenuCommandService, OleMenuCommandService>(); if (commandService == null) return; diff --git a/src/qtvstools/QtSolutionContextMenu.cs b/src/qtvstools/QtSolutionContextMenu.cs index 1658e187..b0935e43 100644 --- a/src/qtvstools/QtSolutionContextMenu.cs +++ b/src/qtvstools/QtSolutionContextMenu.cs @@ -29,6 +29,7 @@ using EnvDTE80; using Microsoft.VisualStudio.Shell; using QtProjectLib; +using QtVsTools.VisualStudio; using System; using System.ComponentModel.Design; using System.Windows.Forms; @@ -96,8 +97,8 @@ namespace QtVsTools m_package = package; - var commandService = ServiceProvider.GetService(typeof(IMenuCommandService)) - as OleMenuCommandService; + var commandService = VsServiceProvider + .GetService<IMenuCommandService, OleMenuCommandService>(); if (commandService == null) return; diff --git a/src/qtvstools/QtVsTools.csproj b/src/qtvstools/QtVsTools.csproj index 188db2ab..b9082147 100644 --- a/src/qtvstools/QtVsTools.csproj +++ b/src/qtvstools/QtVsTools.csproj @@ -158,6 +158,7 @@ <Compile Include="Translation.cs" /> <Compile Include="TranslationItem.cs" /> <Compile Include="VisualStudio\VsShell.cs" /> + <Compile Include="VisualStudio\VsShellSettings.cs" /> <Compile Include="Vsix.cs" /> <Compile Include="VSQtSettings.cs" /> <Compile Include="VsToolsDialogWindow.cs" /> diff --git a/src/qtvstools/VSQtSettings.cs b/src/qtvstools/VSQtSettings.cs index 753c6e71..4a8a9095 100644 --- a/src/qtvstools/VSQtSettings.cs +++ b/src/qtvstools/VSQtSettings.cs @@ -27,8 +27,10 @@ ****************************************************************************/ using Microsoft.VisualStudio.Settings; +using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.Shell.Settings; using QtProjectLib; +using QtVsTools.VisualStudio; using System.ComponentModel; using System.Text.RegularExpressions; @@ -49,7 +51,7 @@ namespace QtVsTools newDisableCheckoutFiles = QtVSIPSettings.GetDisableCheckoutFiles(); newDisableAutoMOCStepsUpdate = QtVSIPSettings.GetDisableAutoMocStepsUpdate(); - var settingsManager = new ShellSettingsManager(Vsix.Instance); + var settingsManager = VsShellSettings.Manager; var store = settingsManager.GetReadOnlySettingsStore(SettingsScope.UserSettings); #if VS2013 @@ -85,7 +87,7 @@ namespace QtVsTools QtVSIPSettings.SaveDisableCheckoutFiles(newDisableCheckoutFiles); QtVSIPSettings.SaveDisableAutoMocStepsUpdate(newDisableAutoMOCStepsUpdate); - var settingsManager = new ShellSettingsManager(Vsix.Instance); + var settingsManager = VsShellSettings.Manager; var store = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings); #if VS2013 diff --git a/src/qtvstools/VisualStudio/VsShell.cs b/src/qtvstools/VisualStudio/VsShell.cs index 453db700..6de0a850 100644 --- a/src/qtvstools/VisualStudio/VsShell.cs +++ b/src/qtvstools/VisualStudio/VsShell.cs @@ -50,7 +50,7 @@ namespace QtVsTools.VisualStudio { if (vsShell != null) return; - vsShell = Package.GetGlobalService(typeof(IVsShell)) as IVsShell; + vsShell = VsServiceProvider.GetService<IVsShell>(); object objProp; int res = vsShell.GetProperty((int)__VSSPROPID2.VSSPROPID_InstallRootDir, out objProp); diff --git a/src/qtvstools/VisualStudio/VsShellSettings.cs b/src/qtvstools/VisualStudio/VsShellSettings.cs new file mode 100644 index 00000000..7bb24a9e --- /dev/null +++ b/src/qtvstools/VisualStudio/VsShellSettings.cs @@ -0,0 +1,37 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt VS Tools. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +using Microsoft.VisualStudio.Shell.Settings; + +namespace QtVsTools.VisualStudio +{ + static class VsShellSettings + { + public static ShellSettingsManager Manager { get; set; } + } +} diff --git a/src/qtvstools/Vsix.cs b/src/qtvstools/Vsix.cs index 45e4e4c4..3d5aaec5 100644 --- a/src/qtvstools/Vsix.cs +++ b/src/qtvstools/Vsix.cs @@ -29,25 +29,41 @@ using EnvDTE; using Microsoft.VisualStudio.Settings; using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.Shell.Settings; +using Microsoft.VisualStudio.Threading; using QtProjectLib; using System; +using System.Diagnostics; using System.IO; using System.Runtime.InteropServices; using System.Threading; +using System.Threading.Tasks; using System.Windows.Forms; +using Task = System.Threading.Tasks.Task; + namespace QtVsTools { using VisualStudio; +#if VS2013 + using AsyncPackage = Package; +#endif + [Guid(PackageGuid)] - [PackageRegistration(UseManagedResourcesOnly = true)] [InstalledProductRegistration("#110", "#112", Version.PRODUCT_VERSION, IconResourceID = 400)] [ProvideMenuResource("Menus.ctmenu", 1)] - [ProvideAutoLoad(Microsoft.VisualStudio.Shell.Interop.UIContextGuids.SolutionExists)] - [ProvideAutoLoad(Microsoft.VisualStudio.Shell.Interop.UIContextGuids.NoSolution)] - public sealed class Vsix : Package +#if VS2013 + [PackageRegistration(UseManagedResourcesOnly = true)] + [ProvideAutoLoad(UIContextGuids.SolutionExists)] + [ProvideAutoLoad(UIContextGuids.NoSolution)] +#else + [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)] + [ProvideAutoLoad(UIContextGuids.SolutionExists, PackageAutoLoadFlags.BackgroundLoad)] + [ProvideAutoLoad(UIContextGuids.NoSolution, PackageAutoLoadFlags.BackgroundLoad)] +#endif + public sealed class Vsix : AsyncPackage, IVsServiceProvider { /// <summary> /// The package GUID string. @@ -109,106 +125,142 @@ namespace QtVsTools } } + static readonly Stopwatch initTimer = Stopwatch.StartNew(); + /// <summary> /// Initialization of the package; this method is called right after the package is sited, /// so this is the place where you can put all the initialization code that rely on services /// provided by VisualStudio. /// </summary> +#if VS2013 protected override void Initialize() +#else + protected override async Task InitializeAsync( + CancellationToken cancellationToken, + IProgress<ServiceProgressData> progress) +#endif { - base.Initialize(); - - Qml.Debug.Launcher.Initialize(); - Action init = () => + try { - try { - instance = this; - - Dte = (this as IServiceProvider).GetService(typeof(DTE)) as DTE; - - if (!string.IsNullOrEmpty(VsShell.InstallRootDir)) - HelperFunctions.VCPath = Path.Combine(VsShell.InstallRootDir, "VC"); - - // determine the package installation directory - var uri = new Uri(System.Reflection.Assembly - .GetExecutingAssembly().EscapedCodeBase); - PkgInstallPath = Path.GetDirectoryName( - Uri.UnescapeDataString(uri.AbsolutePath)) + @"\"; - - var QtMsBuildDefault = Path.Combine( - Environment.GetEnvironmentVariable("LocalAppData"), "QtMsBuild"); - try { - if (!Directory.Exists(QtMsBuildDefault)) - Directory.CreateDirectory(QtMsBuildDefault); - var qtMsBuildFiles = Directory.GetFiles( - Path.Combine(PkgInstallPath, "QtMsBuild")); - foreach (var qtMsBuildFile in qtMsBuildFiles) { - File.Copy(qtMsBuildFile, Path.Combine( - QtMsBuildDefault, Path.GetFileName(qtMsBuildFile)), true); - } - } catch { - QtMsBuildDefault = Path.Combine(PkgInstallPath, "QtMsBuild"); - } + var timeInitBegin = initTimer.Elapsed; + VsServiceProvider.Instance = instance = this; + +#if !VS2013 + /////////////////////////////////////////////////////////////////////////////////// + // Switch to main (UI) thread + await JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); + var timeUiThreadBegin = initTimer.Elapsed; +#endif - var QtMsBuildPath = Environment.GetEnvironmentVariable("QtMsBuild"); - if (string.IsNullOrEmpty(QtMsBuildPath)) { + if ((Dte = VsServiceProvider.GetService<DTE>()) == null) + throw new Exception("Unable to get service: DTE"); - Environment.SetEnvironmentVariable( - "QtMsBuild", QtMsBuildDefault, - EnvironmentVariableTarget.User); + VsShellSettings.Manager = new ShellSettingsManager(this as IServiceProvider); - Environment.SetEnvironmentVariable( - "QtMsBuild", QtMsBuildDefault, - EnvironmentVariableTarget.Process); - } + eventHandler = new DteEventsHandler(Dte); + DefaultEditorsClient.Initialize(eventHandler); + DefaultEditorsClient.Instance.Listen(); - var vm = QtVersionManager.The(initDone); - var error = string.Empty; - if (vm.HasInvalidVersions(out error)) - Messages.PaneMessageSafe(Dte, error, 5000); - eventHandler = new DteEventsHandler(Dte); - - QtMainMenu.Initialize(this); - QtSolutionContextMenu.Initialize(this); - QtProjectContextMenu.Initialize(this); - QtItemContextMenu.Initialize(this); - DefaultEditorsHandler.Initialize(Dte); - QtHelpMenu.Initialize(this); - - try { - CopyTextMateLanguageFiles(); - UpdateDefaultEditors(Mode.Startup); - } catch (Exception e) { - Messages.PaneMessageSafe(Dte, - e.Message + "\r\n\r\nStacktrace:\r\n" + e.StackTrace, 5000); - } + Qml.Debug.Launcher.Initialize(); + QtMainMenu.Initialize(this); + QtSolutionContextMenu.Initialize(this); + QtProjectContextMenu.Initialize(this); + QtItemContextMenu.Initialize(this); + DefaultEditorsHandler.Initialize(Dte); + QtHelpMenu.Initialize(this); + + if (!string.IsNullOrEmpty(VsShell.InstallRootDir)) + HelperFunctions.VCPath = Path.Combine(VsShell.InstallRootDir, "VC"); + +#if !VS2013 + /////////////////////////////////////////////////////////////////////////////////// + // Switch to background thread + await TaskScheduler.Default; + var timeUiThreadEnd = initTimer.Elapsed; +#endif - var modules = QtModules.Instance.GetAvailableModuleInformation(); - foreach (var module in modules) { - if (!string.IsNullOrEmpty(module.ResourceName)) { - var translatedName = SR.GetString(module.ResourceName, this); - if (!string.IsNullOrEmpty(translatedName)) - module.Name = translatedName; - } + var vm = QtVersionManager.The(initDone); + var error = string.Empty; + if (vm.HasInvalidVersions(out error)) + Messages.PaneMessageSafe(Dte, error, 5000); + + // determine the package installation directory + var uri = new Uri(System.Reflection.Assembly + .GetExecutingAssembly().EscapedCodeBase); + PkgInstallPath = Path.GetDirectoryName( + Uri.UnescapeDataString(uri.AbsolutePath)) + @"\"; + + var QtMsBuildDefault = Path.Combine( + Environment.GetEnvironmentVariable("LocalAppData"), "QtMsBuild"); + try + { + if (!Directory.Exists(QtMsBuildDefault)) + Directory.CreateDirectory(QtMsBuildDefault); + var qtMsBuildFiles = Directory.GetFiles( + Path.Combine(PkgInstallPath, "QtMsBuild")); + foreach (var qtMsBuildFile in qtMsBuildFiles) + { + File.Copy(qtMsBuildFile, Path.Combine( + QtMsBuildDefault, Path.GetFileName(qtMsBuildFile)), true); } + } + catch + { + QtMsBuildDefault = Path.Combine(PkgInstallPath, "QtMsBuild"); + } - CopyNatvisFile(); + var QtMsBuildPath = Environment.GetEnvironmentVariable("QtMsBuild"); + if (string.IsNullOrEmpty(QtMsBuildPath)) + { - } catch (Exception e) { - Messages.PaneMessageSafe(Dte, - e.Message + "\r\n\r\nStacktrace:\r\n" + e.StackTrace, 5000); + Environment.SetEnvironmentVariable( + "QtMsBuild", QtMsBuildDefault, + EnvironmentVariableTarget.User); - } finally { - initDone.Set(); + Environment.SetEnvironmentVariable( + "QtMsBuild", QtMsBuildDefault, + EnvironmentVariableTarget.Process); + } + CopyTextMateLanguageFiles(); + UpdateDefaultEditors(Mode.Startup); + CopyNatvisFile(); + + var modules = QtModules.Instance.GetAvailableModuleInformation(); + foreach (var module in modules) + { + if (!string.IsNullOrEmpty(module.ResourceName)) + { + var translatedName = SR.GetString(module.ResourceName, this); + if (!string.IsNullOrEmpty(translatedName)) + module.Name = translatedName; + } } - }; - var QtVs_Init = Environment.GetEnvironmentVariable("QtVs_Init"); - if (string.Equals(QtVs_Init, "fast", StringComparison.InvariantCultureIgnoreCase)) - System.Threading.Tasks.Task.Run(init); - else - init(); + Messages.PaneMessageSafe(Dte, string.Format("\r\n" + + "== Qt Visual Studio Tools version {0}\r\n" + + "\r\n" + + " Initialized in: {1:0.##} msecs\r\n" +#if !VS2013 + + " Main (UI) thread: {2:0.##} msecs\r\n" +#endif + , Version.PRODUCT_VERSION + , (initTimer.Elapsed - timeInitBegin).TotalMilliseconds +#if !VS2013 + , (timeUiThreadEnd - timeUiThreadBegin).TotalMilliseconds +#endif + ), 5000); + } + catch (Exception e) + { + Messages.PaneMessageSafe(Dte, + e.Message + "\r\n\r\nStacktrace:\r\n" + e.StackTrace, 5000); + } + finally + { + initDone.Set(); + initTimer.Stop(); + } } /// <summary> @@ -221,9 +273,13 @@ namespace QtVsTools protected override int QueryClose(out bool canClose) { if (eventHandler != null) + { eventHandler.Disconnect(); + DefaultEditorsClient.Instance.Shutdown(); + } - try { + try + { UpdateDefaultEditors(Mode.Shutdown); } catch (Exception e) { MessageBox.Show(e.Message + "\r\n\r\nStacktrace:\r\n" + e.StackTrace); @@ -269,7 +325,7 @@ namespace QtVsTools private void CopyTextMateLanguageFiles() { #if (!VS2013) - var settingsManager = new ShellSettingsManager(instance); + var settingsManager = VsShellSettings.Manager; var store = settingsManager.GetReadOnlySettingsStore(SettingsScope.UserSettings); var qttmlanguage = Environment. @@ -323,5 +379,21 @@ namespace QtVsTools e.Message + "\r\n\r\nStacktrace:\r\n" + e.StackTrace, 5000); } } + + public I GetService<T, I>() + where T : class + where I : class + { + return GetService(typeof(T)) as I; + } + +#if !VS2013 + public async Task<I> GetServiceAsync<T, I>() + where T : class + where I : class + { + return await GetServiceAsync(typeof(T)) as I; + } +#endif } } diff --git a/src/qtwizard/AddClassPage.xaml.cs b/src/qtwizard/AddClassPage.xaml.cs index 2a7505f7..7b4967bb 100644 --- a/src/qtwizard/AddClassPage.xaml.cs +++ b/src/qtwizard/AddClassPage.xaml.cs @@ -30,6 +30,7 @@ using EnvDTE; using Microsoft.VisualStudio.OLE.Interop; using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; +using QtVsTools.VisualStudio; using System.Collections.Generic; using System.ComponentModel; using System.Runtime.InteropServices; @@ -151,9 +152,9 @@ namespace QtProjectWizard { var block = System.IntPtr.Zero; try { - var dte = Package.GetGlobalService(typeof(DTE)) as DTE; + var dte = VsServiceProvider.GetService<DTE>(); var serviceProvider = new ServiceProvider(dte as IServiceProvider); - var iVsUIShell = serviceProvider.GetService(typeof(SVsUIShell)) as IVsUIShell; + var iVsUIShell = VsServiceProvider.GetService<SVsUIShell, IVsUIShell>(); System.IntPtr owner; iVsUIShell.GetDialogOwnerHwnd(out owner); diff --git a/src/qtwizard/AddClassWizard.cs b/src/qtwizard/AddClassWizard.cs index 33844e85..403f5646 100644 --- a/src/qtwizard/AddClassWizard.cs +++ b/src/qtwizard/AddClassWizard.cs @@ -30,6 +30,7 @@ using Microsoft.Internal.VisualStudio.PlatformUI; using Microsoft.VisualStudio.OLE.Interop; using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; +using QtVsTools.VisualStudio; using System.Collections.Generic; using System.Text.RegularExpressions; using System.Windows.Controls; @@ -44,7 +45,7 @@ namespace QtProjectWizard ServiceProvider serviceProvider = null; try { serviceProvider = new ServiceProvider(dte as IServiceProvider); - iVsUIShell = serviceProvider.GetService(typeof(SVsUIShell)) as IVsUIShell; + iVsUIShell = VsServiceProvider.GetService<SVsUIShell, IVsUIShell>(); } catch { return WizardResult.Exception; } diff --git a/src/qtwizard/ConsoleWizard.cs b/src/qtwizard/ConsoleWizard.cs index 63980a18..0e980092 100644 --- a/src/qtwizard/ConsoleWizard.cs +++ b/src/qtwizard/ConsoleWizard.cs @@ -34,6 +34,7 @@ using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.TemplateWizard; using Microsoft.VisualStudio.VCProjectEngine; using QtProjectLib; +using QtVsTools.VisualStudio; using System.Collections.Generic; using System.IO; using System.Windows.Forms; @@ -46,7 +47,7 @@ namespace QtProjectWizard WizardRunKind runKind, object[] customParams) { var serviceProvider = new ServiceProvider(automation as IServiceProvider); - var iVsUIShell = serviceProvider.GetService(typeof(SVsUIShell)) as IVsUIShell; + var iVsUIShell = VsServiceProvider.GetService<SVsUIShell, IVsUIShell>(); iVsUIShell.EnableModeless(0); diff --git a/src/qtwizard/CoreClassWizard.cs b/src/qtwizard/CoreClassWizard.cs index 96620564..09c4b497 100644 --- a/src/qtwizard/CoreClassWizard.cs +++ b/src/qtwizard/CoreClassWizard.cs @@ -32,6 +32,7 @@ using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.TemplateWizard; using QtProjectLib; +using QtVsTools.VisualStudio; using System.Collections.Generic; using System.IO; using System.Linq; @@ -43,7 +44,7 @@ namespace QtProjectWizard public WizardResult Run(EnvDTE.DTE dte, string name, string location) { var serviceProvider = new ServiceProvider(dte as IServiceProvider); - var iVsUIShell = serviceProvider.GetService(typeof(SVsUIShell)) as IVsUIShell; + var iVsUIShell = VsServiceProvider.GetService<SVsUIShell, IVsUIShell>(); iVsUIShell.EnableModeless(0); diff --git a/src/qtwizard/DesignerWizard.cs b/src/qtwizard/DesignerWizard.cs index efe3a96d..ae3b55cc 100644 --- a/src/qtwizard/DesignerWizard.cs +++ b/src/qtwizard/DesignerWizard.cs @@ -34,6 +34,7 @@ using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.TemplateWizard; using Microsoft.VisualStudio.VCProjectEngine; using QtProjectLib; +using QtVsTools.VisualStudio; using System.Collections.Generic; using System.IO; using System.Linq; @@ -116,7 +117,7 @@ namespace QtProjectWizard WizardRunKind runKind, object[] customParams) { var serviceProvider = new ServiceProvider(automation as IServiceProvider); - var iVsUIShell = serviceProvider.GetService(typeof(SVsUIShell)) as IVsUIShell; + var iVsUIShell = VsServiceProvider.GetService<SVsUIShell, IVsUIShell>(); iVsUIShell.EnableModeless(0); diff --git a/src/qtwizard/FileExistsInFilterValidationRule.cs b/src/qtwizard/FileExistsInFilterValidationRule.cs index 94a16571..03129796 100644 --- a/src/qtwizard/FileExistsInFilterValidationRule.cs +++ b/src/qtwizard/FileExistsInFilterValidationRule.cs @@ -30,6 +30,7 @@ using EnvDTE; using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; using QtProjectLib; +using QtVsTools.VisualStudio; using System.Globalization; using System.Linq; using System.Windows.Controls; @@ -41,7 +42,7 @@ namespace QtProjectWizard public override ValidationResult Validate(object value, CultureInfo cultureInfo) { if (value is string) { - var dte = Package.GetGlobalService(typeof(SDTE)) as DTE; + var dte = VsServiceProvider.GetService<SDTE, DTE>(); if (dte == null) return ValidationResult.ValidResult; diff --git a/src/qtwizard/GuiClassWizard.cs b/src/qtwizard/GuiClassWizard.cs index feb878bf..51d7c945 100644 --- a/src/qtwizard/GuiClassWizard.cs +++ b/src/qtwizard/GuiClassWizard.cs @@ -32,6 +32,7 @@ using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.TemplateWizard; using QtProjectLib; +using QtVsTools.VisualStudio; using System.Collections.Generic; using System.IO; using System.Linq; @@ -43,7 +44,7 @@ namespace QtProjectWizard public WizardResult Run(EnvDTE.DTE dte, string name, string location) { var serviceProvider = new ServiceProvider(dte as IServiceProvider); - var iVsUIShell = serviceProvider.GetService(typeof(SVsUIShell)) as IVsUIShell; + var iVsUIShell = VsServiceProvider.GetService<SVsUIShell, IVsUIShell>(); iVsUIShell.EnableModeless(0); diff --git a/src/qtwizard/GuiWizard.cs b/src/qtwizard/GuiWizard.cs index 19a082fd..0c015de3 100644 --- a/src/qtwizard/GuiWizard.cs +++ b/src/qtwizard/GuiWizard.cs @@ -34,6 +34,7 @@ using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.TemplateWizard; using Microsoft.VisualStudio.VCProjectEngine; using QtProjectLib; +using QtVsTools.VisualStudio; using System.Collections.Generic; using System.IO; using System.Linq; @@ -48,7 +49,7 @@ namespace QtProjectWizard WizardRunKind runKind, object[] customParams) { var serviceProvider = new ServiceProvider(automation as IServiceProvider); - var iVsUIShell = serviceProvider.GetService(typeof(SVsUIShell)) as IVsUIShell; + var iVsUIShell = VsServiceProvider.GetService<SVsUIShell, IVsUIShell>(); iVsUIShell.EnableModeless(0); diff --git a/src/qtwizard/LibraryWizard.cs b/src/qtwizard/LibraryWizard.cs index 7fbd6213..27304917 100644 --- a/src/qtwizard/LibraryWizard.cs +++ b/src/qtwizard/LibraryWizard.cs @@ -34,6 +34,7 @@ using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.TemplateWizard; using Microsoft.VisualStudio.VCProjectEngine; using QtProjectLib; +using QtVsTools.VisualStudio; using System.Collections.Generic; using System.IO; using System.Text.RegularExpressions; @@ -110,7 +111,7 @@ namespace QtProjectWizard WizardRunKind runKind, object[] customParams) { var serviceProvider = new ServiceProvider(automation as IServiceProvider); - var iVsUIShell = serviceProvider.GetService(typeof(SVsUIShell)) as IVsUIShell; + var iVsUIShell = VsServiceProvider.GetService<SVsUIShell, IVsUIShell>(); iVsUIShell.EnableModeless(0); diff --git a/src/qtwizard/ServerWizard.cs b/src/qtwizard/ServerWizard.cs index 647c9d95..e1c401bb 100644 --- a/src/qtwizard/ServerWizard.cs +++ b/src/qtwizard/ServerWizard.cs @@ -34,6 +34,7 @@ using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.TemplateWizard; using Microsoft.VisualStudio.VCProjectEngine; using QtProjectLib; +using QtVsTools.VisualStudio; using System.Collections.Generic; using System.IO; using System.Linq; @@ -115,7 +116,7 @@ namespace QtProjectWizard WizardRunKind runKind, object[] customParams) { var serviceProvider = new ServiceProvider(automation as IServiceProvider); - var iVsUIShell = serviceProvider.GetService(typeof(SVsUIShell)) as IVsUIShell; + var iVsUIShell = VsServiceProvider.GetService<SVsUIShell, IVsUIShell>(); iVsUIShell.EnableModeless(0); diff --git a/src/qtwizard/VCLanguageManagerValidationRule.cs b/src/qtwizard/VCLanguageManagerValidationRule.cs index be659db4..bf9f6210 100644 --- a/src/qtwizard/VCLanguageManagerValidationRule.cs +++ b/src/qtwizard/VCLanguageManagerValidationRule.cs @@ -29,6 +29,7 @@ using EnvDTE; using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.VCCodeModel; +using QtVsTools.VisualStudio; using System.Windows.Controls; namespace QtProjectWizard @@ -39,7 +40,7 @@ namespace QtProjectWizard { ValidatesOnTargetUpdated = true; - var dte = Package.GetGlobalService(typeof(DTE)) as DTE; + var dte = VsServiceProvider.GetService<DTE>(); Vclm = dte.GetObject("VCLanguageManager") as VCLanguageManager; } |