HOW TO:加入 Automation 命名空間的參考
當您加入 EnvDTE、EnvDTE80、EnvDTE90 或 EnvDTE100 的參考時,可以選擇使用 .NET 組件或 COM 程式庫版本。 至於應該選擇哪一個則視專案而定。
如果是維護舊版的應用程式或增益集,可能需要使用 COM 版本的 EnvDTE、EnvDTE80、EnvDTE90 或 EnvDTE100。 如果是建立新的 Managed 應用程式或增益集,則可能需要使用 .NET 組件版本。
當您使用 [增益集] 以任何程式語言建立增益集,或當您建立巨集時,程序會加入 EnvDTE、EnvDTE90、Env90 和 Env100 組件的參考,並且在包含 Connect 類別的檔案中,將 using (在 Visual Basic 中為 imports) 指示詞加入至 EnvDTE 和 EnvDTE80 命名空間。
若要在巨集或是使用 [增益集精靈] 建立的增益集以外的地方存取 Automation 物件,則必須以手動方式加入參考和 using (在 Visual Basic 中為 imports) 指示詞。 當您手動加入組件參考時,還必須將組件的 [內嵌 Interop 型別] 屬性設定為 false。 若要進行這項作業,請遵循下列步驟。
加入組件參考。 在 [方案總管] 中,以滑鼠右鍵按一下專案,然後選取 [加入參考]。 在 [.NET] 索引標籤上,選取組件,然後按一下 [確定]。 在 C# 專案中,您會在 [方案總管] 中的 [參考] 節點底下看見組件的名稱。 在 Visual Basic 專案中,您會在專案屬性中看見組件的名稱。 以滑鼠右鍵按一下 [方案總管] 中的專案,然後選取 [屬性]。 屬性頁面隨即出現。 選取左窗格中的 [參考] 頁面。
選取組件參考,然後在 [屬性] 視窗中,將組件的 [內嵌 Interop 型別] 屬性設定為 false。
有了命名空間的參考之後,您可能最想針對 DTE 和 DTE2 物件設計程式。 如需詳細資訊,請參閱 HOW TO:取得參考至 DTE 和 DTE2 物件。
注意事項 |
---|
根據您目前使用的設定或版本,您所看到的對話方塊與功能表指令可能會與 [說明] 中描述的不同。使用 [一般開發設定] 開發了這些程序。若要變更設定,請從 [工具] 功能表中選擇 [匯入和匯出設定]。如需詳細資訊,請參閱 Visual Studio 設定。 |
若要以手動方式在 Visual Basic 或 Visual C# 中加入 EnvDTE 命名空間的參考
在 [方案總管] 中,以滑鼠右鍵按一下專案或 [參考] 節點並按一下 [加入參考],或是按一下 [專案] 功能表上的 [加入參考] 命令。
在 [加入參考] 對話方塊中,按一下您所要的元件類型的索引標籤,例如 [.NET] 或 [COM]。
按一下 [確定],將這兩個新的參考加入至專案中。
若要在程式碼編輯器中啟用新組件的 IntelliSense,請在專案的模組或類別的最上方加入下列程式碼:
Imports EnvDTE Imports EnvDTE80 Imports EnvDTE90 Imports EnvDTE100
using EnvDTE; using EnvDTE80; using EnvDTE90; using EnvDTE100;
若要以手動方式在 Managed Visual C++ 中加入 EnvDTE 命名空間的參考
在 [方案總管] 中,以滑鼠右鍵按一下專案節點並按一下 [加入參考],或是按一下 [專案] 功能表上的 [加入參考] 命令。
按一下 [加入新參考],再按一下 [.NET] 索引標籤。
按一下 [確定],將這個新的參考加入至專案中。
若要在程式碼編輯器中啟用新組件的 IntelliSense,請在主專案檔案的最上方加入下列程式碼:
// Visual C++ #using <envdte.dll> #using <envdte80.dll> #using <envdte90.dll> #using <envdte100.dll>
若要在 Unmanaged (ATL) Visual C++ 中加入 EnvDTE 和 EnvDTE80 命名空間的參考
在適當的標頭檔 (Header File) 或原始程式檔中,加入下列程式碼:
#pragma warning( disable : 4278 ) #pragma warning( disable : 4146 ) //The following #import imports EnvDTE based on its LIBID. #import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("8.0") lcid("0") raw_interfaces_only named_guids //The following #import imports EnvDTE80 based on its LIBID. #import "libid:1A31287A-4D7D-413e-8E32-3B374931BD89" version("8.0") lcid("0") raw_interfaces_only named_guids //The following #import imports EnvDTE90 based on its LIBID. #import "libid: 2ce2370e-d744-4936-a090-3fffe667b0e1" version("9.0") lcid("0") raw_interfaces_only named_guids //The following #import imports EnvDTE100 based on its LIBID. #import "libid: 26ad1324-4b7c-44bc-84f8-b86aed45729f" version("10.0") lcid("0") raw_interfaces_only named_guids #pragma warning( default : 4146 ) #pragma warning( default : 4278 )