Aracılığıyla paylaş


Nasıl yapılır: DTE ve DTE2 Nesnelerine Başvurular Alma

[!NOT]

Visual Studio 2013 içinde, eklentiler kullanım dışı bırakılmıştır.Eklentilerinizi VSPackage uzantılarına yükseltmenizi öneririz.Daha fazla bilgi için bkz. SSS: Eklentileri VSPackage Uzantılarına Dönüştürme.

İçinde EnvDTE derleme, DTE nesnesinin temsil ettiği Visual Studio tümleşik geliştirme ortamı (IDE) ve otomasyon modeli hiyerarşisinde en üst düzey nesnedir.Çekirdek otomasyon modeli erişmek için Otomasyon uygulama bu nesneye bir başvuru olması gerekir.

Ancak, ve buna ek olarak EnvDTE80 derleme adlı bir yedek en üst düzey nesne sağlar DTE2 yerini alır ve DTE nesne.Her iki nesnenin hareket olsa da — ve programlanmış — benzer şekilde, DTE2 barındıran yeni ve güncelleştirilmiş nesneler ve topluluklar ve yeni işlevsellik içerir.

Yeni Otomasyon uygulamalar oluşturduğunuzda, her iki nesnelere başvurular oluşturmanız önerilir — için DTE2 yeni işlevsellik ve erişim sağlamak için nesne DTE çekirdek işlevselliği geri kalanına erişim sağlamak için nesne.Ayrıca mümkün olduğunca yeni nesnelerin ve koleksiyonların kullanmanızı öneririz DTE2 olanlar yerine DTE.

Aşağıdaki adımlar, bir başvuru almak nasıl gösterir DTE2 nesne. (Aynı yordam DTE nesnesine uygulanır.) Bir nesneye bir başvuru eklemeden önce uygun derleme ve tür kitaplığı için başvuru eklemeniz gerekir.Daha fazla bilgi için bkz. Nasıl yapılır: Otomasyon Ad Alanlarına Başvurular Ekleme.

için kullanılacak olan program tanımlayıcısı (ProgID) VisualStudio.DTE.12.0'dır.Ardından, getirilen nesneyi bir DTE2 arabirimine çevirebilirsiniz.

Bunlar çağrıldığında, DTE2 özellikleri, yöntemleri ve olayları iade DTE türleri.Örneğin, Solution döndüren bir Solution nesne değil, bir Solution2 nesne bir Tahmin edebileceiniz gibi.Bunun nedeni, budur kullandığınızda, DTE2 üyeleri veya diğer tür üyeleri, size gereken açıkça typecast bunları.Bu tasarım tutarlılık yükseltir ve karışıklıkları azaltır.EnvDTE80.dll birleştirme dosyası, tüm DTE2 özellikleri için tutarlı olarak aynı arabirimi döndürür.En son arabirim sürümü dönmeden kafa karıştırıcı olur — Örneğin, gelecekteki bir sürümüne, Visual Studio bir DTE3 türü için bazı arabirimler döndürebilir sonra olan DTE, bazı DTE2ve bazı DTE3.Ayrıca, COM birlikte çalışma sorunları nedeniyle oluşturamadığından "2" Arabirimleri'nde EnvDTE80 türetilen EnvDTE arabirimleri.Örneğin, Window2 türetilen Window; yoksa bir DTE özelliği eklendi Window2, kendisini gizleyecek Windows özelliği ve olmayan COM uygulamaları ile düzgün çalışır.

[!NOT]

Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir.Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler.Daha fazla bilgi için bkz. Visual Studio'da Geliştirme Ayarlarını özelleştirme.

DTE2 nesnesine Visual Basic ve C#'ta başvurmak için

  • Kodunuzda bu ekleyin:

    ' Get an instance of the currently running Visual Studio IDE.
    Dim DTE2 as EnvDTE80.DTE2
    DTE2 = System.Runtime.InteropServices.Marshal. _
    GetActiveObject("VisualStudio.DTE.12.0")
    
    // Get an instance of the currently running Visual Studio IDE.
    EnvDTE80.DTE2 dte2;
    dte2 = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.
    GetActiveObject("VisualStudio.DTE.12.0");
    

DTE ya da DTE2 nesnesine Visual C++'ta (ATL) başvurmak için

  • Kodunuzda bu ekleyin:

    CComPtr<EnvDTE::_DTE> m_pDTE;
    CComPtr<EnvDTE80::DTE2> m_pDTE2;
    CLSID clsid;
    CLSID clsid2;
    CLSIDFromProgID(L"VisualStudio.DTE.12.0",&clsid);
    CLSIDFromProgID(L"VisualStudio.DTE.12.0",&clsid2);
    CComPtr<IUnknown> punk;
    CComPtr<IUnknown> punk2;
    // Get a running instance of Visual Studio.
    HRESULT hr = GetActiveObject(clsid,NULL,&punk);
    hr = GetActiveObject(clsid2,NULL,&punk2);
    m_pDTE = punk;
    m_pDTE2 = punk2;
    

Ayrıca bkz.

Görevler

Nasıl yapılır: Otomasyon Ad Alanlarına Başvurular Ekleme

Nasıl yapılır: Eklenti Yöneticisini Kullanarak Eklentileri Denetleme

Kavramlar

IDE'nin Belirli Örneklerine Ekleme

Eklenti Kaydı

Otomasyon Nesne Modeli Grafiği

Diğer Kaynaklar

Eklentiler ve Sihirbazlar Oluşturma