Merge pull request #57609 from Densorius/master

Add Visual Studio 2022 support with fallback to 2019
This commit is contained in:
Ignacio Roldán Etcheverry 2022-02-04 03:47:11 +01:00 committed by GitHub
commit c24fc415dc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

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)