Как Вы получаете текущий каталог решения от VSPackage?

Следующее - то, как Вы получили бы текущий каталог решения от дополнения:

_applicationObject = (DTE2)application;  // retrieved from OnConnection method
string solutionDir = System.IO.Path.GetDirectoryName(_applicationObject.Solution.FullName);

Как Вы сделали бы это через VSPackage?

Я перемещаю дополнение Visual Studio в VSPackage, поскольку я намереваюсь добавить некоторые пользовательские элементы управления, которые требуют глубокой интеграции с IDE.

Я нашел некоторые хорошие ссылки на относительных достоинствах дополнений по сравнению с пакетами интеграции, такими как: http://nayyeri.net/visual-studio-addin-vs-integration-package-part-1

И некоторые хорошие учебные руководства на MSDN на VSPackages, такие как: http://msdn.microsoft.com/en-us/library/cc138589.aspx

Я еще не нашел хорошую ссылку (на MSDN или иначе) о том, как высокоуровневые интерфейсы в дополнениях (таких как DTE) отображаются для понижения интерфейсов уровня в VSPackages.

Какие-либо хорошие ссылки там для помощи с общим отображением от дополнения взаимодействуют через интерфейс к интерфейсам VSPackage?

27
задан Dave Clemmer 22 December 2012 в 18:28
поделиться

1 ответ

Я нашел ответ на конкретный вопрос. Объект VisualStudio.DTE можно получить через метод GetService() следующим образом:

// Get an instance of the currently running Visual Studio IDE
DTE dte = (DTE)GetService(typeof(DTE));
string solutionDir = System.IO.Path.GetDirectoryName(dte.Solution.FullName);
28
ответ дан 28 November 2019 в 05:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: