Aracılığıyla paylaş


Nasıl yapılır: dte ve DTE2 nesnelere başvurular almak

De EnvDTE derleme, DTE nesne temsil Visual Studio tümleşik geliştirme ortamı (IDE) ve otomasyon modeli hiyerarşisinde en yüksek düzey nesnesi.Tüm Otomasyon uygulamaları çekirdek otomasyon modeli erişmek için bu nesneye bir başvuru olması gerekir.Devam talebiyle olmasını Visual Studio.

Ancak ayrıca EnvDTE80 yerini üst düzey nesne adlı derleme sağlar DTE2 , yerini alır DTE nesnesi.Her iki nesnenin de davranacak ve benzer şekilde, program ama DTE2 barındıran bir dizi yeni ve güncelleştirilmiş nesnelerin ve koleksiyonların ve yeni işlevler içerir.

Sonuç olarak, yeni Otomasyon uygulamaları ve eklentileri oluştururken, hem nesnelere başvurular oluşturmanız gerekir.Yeni DTE2 nesnesi yeni işlevlere erişim sağlar iken DTE nesnesi Otomasyon çekirdek işlevselliği geri kalanı için erişim sağlar.Yeni nesnelerin ve koleksiyonların altında DTE2 nesnelerin ve koleksiyonların içinde yerine kullanılması gereken DTE mümkün.

Aşağıdaki yordamlarda nasıl bir başvuru Göster DTE2 nesnesi.(Aynı yordam geçerlidir DTE nesne.) Nesnelere başvurular eklemeden önce uygun birleştirmeleri ve tür kitaplığına başvuru eklemeniz gerekir.Daha fazla bilgi için bkz. Nasıl yapılır: Otomasyon ad başvurular ekleyin.

Programlama kimliğini (ProgID) kullanmak için Visual Studio 2012 VisualStudio.DTE.11.0 olur.Sonra dönen nesnesine artığını bir DTE2 arabirimi.

DTE2 Özellikleri, yöntemleri ve olayları, çağrıldığı zaman dönmek DTE türleri.Örneğin, Solution döndüren bir Solution nesne değil, bir Solution2 tahmin edebileceiniz gibi nesne.Bu nedenle, kullanırken DTE2 üyeleri veya diğer tür üyeleri, size gereken açıkça typecast bunları.Bu, kasıtlı olarak çeşitli nedenlerle yapılmadı.İlk tutarlılık yükseltmek ve karmaşıklığı azaltmak için nedenidir.EnvDTE80.dll derleme sürekli olarak aynı arabirimi için verir DTE2 özellikleri.En son sürümünü arabirimi döndürerek kafa karıştırıcı olabilir.Örneğin, gelecekteki bir sürümüne Visual Studio DTE3 türü, varsa döndürmesine neden olan bazı arabirimler DTE, bazı DTE2ve bazı DTE3.Üstelik, com birlikte çalışabilirlik sorunları nedeniyle poz, "2" arabirimleri EnvDTE80 öğesinden türetilmeli EnvDTE arabirimleri.Örneğin, Window2 türetildiği Window.Yoksa bir DTE özelliği eklendi Window2, bunu gizlemek sonra Windows özelliği ve com uygulamaları düzgün çalışmaz.

[!NOT]

Gördüğünüz iletişim kutuları ve menü komutları, etkin ayarlarınıza ve ürün sürümüne bağlı olarak Yardım menüsünde açıklanana göre farklılık gösterebilir.Bu yordamlar, genel geliştirme ayarları ile etkin geliştirilmiştir.Ayarlarınızı değiştirmek için Al ve Verayarları üzerinde araçları menü.Daha fazla bilgi için bkz. Visual Studio ayarları.

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

  • Kodunuzu, aşağıdakini ekleyin:

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

dte ya da DTE2, Visual C++ (atl) nesne referansı

  • Kodunuzu, aşağıdakileri girin:

    CComPtr<EnvDTE::_DTE> m_pDTE;
    CComPtr<EnvDTE80::DTE2> m_pDTE2;
    CLSID clsid;
    CLSID clsid2;
    CLSIDFromProgID(L"VisualStudio.DTE.11.0",&clsid);
    CLSIDFromProgID(L"VisualStudio.DTE.11.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 başvurular ekleyin

Nasıl yapılır: denetim Eklenti Yöneticisi'ni kullanarak eklentileri

Kavramlar

IDE belirli örneklerini ekleme

Eklenti kayıt

Otomasyon nesne modeli şeması

Diğer Kaynaklar

Eklentiler ve sihirbazlar oluşturma