访问 vsix 项目中当前打开的解决方案

Acessing currently opened solution in a vsix project

我想从 vsix 项目访问 Visual Studio 中当前打开的解决方案的路径。我怎样才能得到它?

This thread tells if a solution is open 或没有,但没有给出打开的解决方案的路径

我用这个:

    public string GetInitialFolder(DTE dte)
    {
        if (!dte.Solution.IsOpen)
            return null;
        return System.IO.Path.GetDirectoryName(dte.Solution.FullName);
    }

但预计它会出错,有时它不能return一个路径!

我建议在开发包时尽量避免使用EnvDTE,尽可能使用原生服务。在这种情况下 IVsSolution.GetSolutionInfo