我正在编写一些设计时代码。我想使用这个片段:(在这里找到)
var dte = (EnvDTE.DTE) GetService(typeof(EnvDTE.DTE));
if (dte != null)
{
var solution = dte.Solution;
if (solution != null)
{
string baseDir = Path.GetDirectoryName(solution.FullName);
}
}
问题是这不能编译。(GetService 不是已知的方法调用)我尝试添加 Microsoft.VisualStudio.Shell(和 Microsoft.VisualStudio.Shell.10.0),但没有帮助。
在互联网上环顾四周,我发现您需要一个 IServiceProvider 来调用它。
但是所有展示如何获取 IServiceProvider 的示例都使用 EnvDTE。
因此,要获得当前的 EnvDTE,我需要 IServiceProvider。但要获得 IServiceProvider,我需要一个 EnvDTE。(我的桶里有个洞……)
所以,这是我的问题:
在普通的 WPF 应用程序中,如何获取EnvDTE的当前实例?
注意:我不是在寻找任何旧的 EnvDTE 实例。我需要一个用于我当前的 Visual Studio 实例(我一次运行 3-4 个 Visual Studio 实例。)