文章編號: 555391 - 上次校閱: 2005年8月10日 - 版次: 1.0

HOWTO: 自動化 Visual Studio . NET 從 IDE 外面

作者?Carlos Quintero MVP
系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
全部展開 | 全部摺疊

結論

本文告訴您如何自動化 Visual Studio . NET IDE 從 IDE 外面。

徵狀

本文告訴您如何自動化 Visual Studio . NET IDE 從 IDE 外面。

其他相關資訊

Visual Studio . NET 會公開 (Expose) 的擴充性模型, 可以用來為它自動化。 這個物件模型位於 EnvDTE.dll 組件, 其中您可以使用物件瀏覽器瀏覽。 根類別的物件模型是 EnvDTE.DTE, 因此您需要這個類別將它自動化的一個執行個體 (Instance)。
?
您必須以自動化 Visual Studio . NET IDE, 方法如下:
?
- 使用巨集: 巨集是以 VB . NET 撰寫的程序來自動化一些從 IDE 中工作, 讓 若要撰寫巨集您使用 [ 巨集 IDE (Tools, 巨集巨集 IDE ] 功能表)。 若要瀏覽並執行您的巨集您使用 [ 巨集總管 ] 視窗 (檢視, [ 其他視窗, [ 巨集總管 ] 功能表)。 巨集提供隱含名為 DTE EnvDTE.DTE 類別之執行個體。
?
- 使用的增益集: 增益集是透過特殊登錄它是由 Visual Studio . NET 載入並提供新命令、 命令列及按鈕, 以執行新的動作已編譯的 DLL 會當連線發生 Visual Studio . NET 傳遞 EnvDTE.DTE 類別之執行個體給方法的增益集。
?
不過有第三個方法, 讓您可以用來自動化 IDE 來自外部, 例如從其他應用程式或從指令碼自動化 IDE, 從先前的方法。 如果要執行這項操作, 首先您要建立 EnvDTE.DTE 類別的執行個體。 做法是使用 CreateObject 函式的大部分的 COM - aware 語言, 傳遞之類別的 ProgID 清單的可用的 ProgID 為下列動作:
?
- 適用於 Visual Studio . NET 2002: 「 VisualStudio.DTE.7 "
「 VisualStudio.DTE.7.1 " - for Visual Studio . NET 2003:
- for Visual Studio 2005: " VisualStudio.DTE.8.0 "
?
如需已安裝的最高版本的 Visual Studio . NET, 您可以使用獨立版本的 ProgID " VisualStudio.DTE "。
?
而您會自動它來自外部控制行為的 IDE 的 2 個重要屬性有:
?
- DTE.MainWindow.Visible: 根據預設值, 當您建立執行個體的 IDE, 它是不可見的。 如果您想要讓它顯示, 必須將這個屬性設定為 True。
?
在您完成與自動化是 - DTE.UserControl: 當設定為 True, IDE 仍然開啟。 這會很有用如果您要開啟 IDE, 執行某些動作, 並保留如果開啟以供使用者可以繼續使用它。 當設定為 False, 物件釋放在為您完成與自動化。
?
下列 VBScript 範例會示範如何建立和 VS . NET 2003 的執行個體並顯示其名稱和版本:
?
?
Dim objDTE
?
' 建立 VS . NET 2003 IDE 執行個體
設定 objDTE = CreateObject("VisualStudio.DTE.7.1")
?
', 仍不可見的執行個體時顯示其名稱和版本
MsgBox objDTE.Name " & " & objDTE.version
?
' 使它可見並將其開啟我們完成這段指令碼之後
objDTE.MainWindow.Visible = true
objDTE.UserControl = true
?
?
參考:
?
在開發環境 - 操作: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxoriManipulatingDevelopmentEnvironment.asp
?
- 自動化和擴充性參考: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxoriExtensibilityReference.asp

?

這篇文章中的資訊適用於:
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Professional Edition
關鍵字:?
kbpubmvp kbpubtypecca kbhowto KB555391 KbMtzh kbmt
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。如果您發現錯誤,並想要協助我們進行改善,請填寫本篇文章下方的問卷。
按一下這裡查看此文章的英文版本:555391? (http://support.microsoft.com/kb/555391/en-us/ )
Community Solutions Content社區解決方案內容免責聲明
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。