Add Visual Studio 2022 support with fallback to 2019
This commit is contained in:
parent
f8f19b313d
commit
9ea0508d35
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue