Add Visual Studio 2022 support with fallback to 2019

This commit is contained in:
Densorius 2022-02-04 00:06:53 +01:00
parent f8f19b313d
commit 9ea0508d35
1 changed files with 21 additions and 2 deletions

View File

@ -47,9 +47,13 @@ namespace GodotTools.OpenVisualStudio
if (dte == null)
{
// Open a new instance
dte = TryVisualStudioLaunch("VisualStudio.DTE.17.0");
var visualStudioDteType = Type.GetTypeFromProgID("VisualStudio.DTE.16.0", throwOnError: true);
dte = (DTE)Activator.CreateInstance(visualStudioDteType);
if (dte == null)
{
// Launch of VS 2022 failed, fallback to 2019
dte = TryVisualStudioLaunch("VisualStudio.DTE.16.0");
}
dte.UserControl = true;
@ -133,6 +137,21 @@ namespace GodotTools.OpenVisualStudio
return 0;
}
private static DTE TryVisualStudioLaunch(string version)
{
try
{
var visualStudioDteType = Type.GetTypeFromProgID(version, throwOnError: true);
var dte = (DTE)Activator.CreateInstance(visualStudioDteType);
return dte;
}
catch (COMException)
{
return null;
}
}
private static DTE FindInstanceEditingSolution(string solutionPath)
{
if (GetRunningObjectTable(0, out IRunningObjectTable pprot) != 0)