Получить ссылку на объект DTE2 в Visual C # 2010

Я хочу получить ссылку на текущее решение, с помощью объекта DTE2 с C # в Visual Studio 2010.

Сначала я попробовал следующий код:

var dte = Marshal.GetActiveObject("VisualStudio.DTE.10.0") as EnvDTE80.DTE2;

Но когда я открываю 2 решения, и этот код находится в первом решении, я НЕ получаю ссылку на текущее решение, но ссылка на последнее загруженное мной решение. Мне нужно текущее решение ...

При поиске в Интернете я нашел следующее решение в Как получить текущий каталог решения из VSPackage? :

// Get an instance of the currently running Visual Studio IDE
DTE dte = (DTE)GetService(typeof(DTE));

Но когда я использую это, мой объект dte всегда равен NULL.

Итак, как мне добраться до моего текущего объекта решения в VS2010, используя C # на платформе .net 4. 0?

10
задан Community 23 May 2017 в 11:54
поделиться