如何从 VSIX 获取 SSMS 的版本

How can I get the version of SSMS from VSIX

我正在使用 VSIX 开发 SSMS 扩展。 在此扩展中,我需要知道我 运行 使用的是哪个版本的 SSMS。 获得它的最佳方法是什么?

我在我的 SSMS 扩展中这样做(适用于 SSMS 16 及更高版本)

        var dte = GetServiceHelper(typeof(EnvDTE.DTE)) as EnvDTE.DTE;
        if (dte == null) return new Version(130, 0, 0, 0);
        if (dte.RegistryRoot.Contains("14.0"))
        {
            return new Version(140, 0, 0, 0);
        }
        return new Version(130, 0, 0, 0);

https://github.com/ErikEJ/SqlCeToolbox/blob/master/src/GUI/SSMSToolbox/Package/SqlCeToolboxPackage.cs#L67

dte.Version returns 2015.0130 对于 SSMS 2016 和 2017.0140 SSMS 17.