Как использовать 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/

http://www.visualstudioextensibility.com/articles/compiler/

http://www.visualstudioextensibility.com/videos/compiler/

Другие вопросы по тегам