簡體   English   中英

如何在沒有外接程序基礎結構的情況下使用Visual Studio FileCodeModel?

[英]How to use Visual Studio FileCodeModel without the Addin infrastructure?

Visual Studio可擴展性上的所有示例都傳遞了一個DTE2對象,如下所示:

public void OnConnection(object application, ...)
{
    _applicationObject = (DTE2)application;
    ...
}

如果沒有通過Addin傳遞DTE2對象,是否無法訪問FileCodeModel對象? 我想編寫一個獨立的C#控制台應用程序(不使用VS Addin基礎結構),該應用程序讀取一個.cs文件並使用FileCodeModel類對其進行解析。

FileCodeModel fileCM = dte.ActiveDocument.ProjectItem.FileCodeModel; 

當然,為了使以上操作有效, dte對象必須可用。 相反,難道沒有像以下虛構的方法那樣不依賴DTE2對象的方法嗎?

FileCodeModel fileCM = new FileCodeModel.ReadCsFile(filepathname);

(PS:我知道Visual Studio 2013中發生了變化,但是我仍在使用Visual Studio2010。)

您需要一個DTE實例來使用代碼模型,但是您可以在VS之外獲得一個DTE實例:

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

您也可以在不使用Visual Studio的情況下使用.NET編譯器平台(“ Roslyn”):

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

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM