Как использовать Visual Studio FileCodeModel без инфраструктуры Addin?
Все примеры расширения Visual Studio имеют DTE2
объект передан, вот так:
public void OnConnection(object application, ...)
{
_applicationObject = (DTE2)application;
...
}
Разве невозможно получить доступ к FileCodeModel
объект без DTE2
объект передан через аддин? Я хотел бы написать отдельное консольное приложение C# (без использования инфраструктуры VS Addin), которое читает файл.cs и анализирует его, используя FileCodeModel
учебный класс.
FileCodeModel fileCM = dte.ActiveDocument.ProjectItem.FileCodeModel;
Конечно, чтобы вышесказанное работало, dte
объект должен быть доступен. Вместо этого, не существует ли такой подход, как следующий вымышленный, который не опирается на DTE2
объект?
FileCodeModel fileCM = new FileCodeModel.ReadCsFile(filepathname);
(PS: я знаю, что вещи изменились в Visual Studio 2013, но я все еще использую Visual Studio 2010.)
1 ответ
Вам нужен экземпляр DTE для использования модели кода, но вы можете получить экземпляр DTE вне VS:
HOWTO: Автоматизация Visual Studio .NET вне среды IDE. http://www.visualstudioextensibility.com/articles/add-ins/
Вы также можете использовать.NET Compiler Platform ("Roslyn") без Visual Studio:
http://www.visualstudioextensibility.com/documentation/compiler/