2015-02-23 80 views
1

基於Visual Studio擴展所有的例子都通過在DTE2對象,像這樣:如何在沒有Addin基礎結構的情況下使用Visual Studio FileCodeModel?

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)

回答

2

你需要一個DTE實例以使用代碼模型,但你可以得到一個VS外DTE例如:

HOWTO:從IDE外部自動化的Visual Studio .NET。 http://www.visualstudioextensibility.com/articles/add-ins/

您還可以使用.NET編譯器平臺( 「羅斯林」),而Visual Studio的:

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

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

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

相關問題