Aracılığıyla paylaş


Nasıl yapılır: oluşturma ve Visual Studio başka bir örneği ekleme

Bunu yararlı program aracılığıyla bazı durumlarda yeni bir örneğini oluşturmak Visual Studio belirli bir örneğe eklemek veya Visual Studio , zaten çalışıyor.İki örneğini Visual Studio bir sistemde çalışan ve her ikisi de açık aynı çözümü vardır — Örneğin, bir örnek çözüm oluşturma işlemi uyguluyor ve başka bir hata ayýklama yapýsýnýn Confi gerçekleştirmek olduğunu — bunlar arasında ayrım yapmak için eklenti programı.

Örneğin yapabilirsiniz:

  • Bir örneğini başlatmak Visual Studio bir dosya ya da çözüm yoluna göre.

  • Örneğine iliştirmek Visual Studio bir dosya ya da çözüm yoluna göre.

  • Bir dosya ya da çözümü varolan bir örneğine yük Visual Studio.

  • Yeni bir örneğini oluşturmak Visual Studio burada örnek kapatır ne zaman:

    • Hem dış başvuru sayısı DTE nesnesi ve Solution nesne 0 olur.

      - ve -

    • Tümleşik geliştirme ortamı (IDE) kullanıcıya görüntülenmez veya kullanıcı denetimi altında değil.

  • Yeni bir örneğini oluşturmak Visual Studio burada örnek yüklü olarak kalır bile:

    • Hem dış başvuru sayısı DTE nesnesi ve Solution nesne 0 olur.

    • IDE kullanıcıya görüntülenir.

      - ve -

    • IDE kullanıcı denetimi altında olur.

Döndürülen nesnelerin kendi nesnelerini gibi artığını DTE2 ve Solution2.

[!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ı.

Örnek

Yeni bir örneğini oluşturmak için Visual Studio, ya da kullanma CreateObject Function veya System.Activator.CreateInstance.Kullanırken CreateObject , işlev Visual Basic, değerlerini geçirebilirsiniz "VisualStudio.DTE.10.0." bu yöntemler aşağıdaki örneklerde gösterilmektedir.

' CreateObject method 1 - VisualStudio.DTE.10.0.
Public Sub Exec(ByVal commandName As String, ByVal executeOption _
As vsCommandExecOption, ByRef varIn As Object, ByRef varOut As _
Object,  ByRef handled As Boolean) Implements IDTCommandTarget.Exec
   handled = False
   If executeOption = _
      vsCommandExecOption.vsCommandExecOptionDoDefault Then
      If commandName = "VBTestAddin.Connect.VBTestAddin" Then
          CreateNewInstance1(_applicationObject)
          handled = True
          Exit Sub
      End If
   End If
End Sub

Private Sub CreateNewInstance1(ByVal dte As DTE2)
    Dim inst As Object
    Dim dte80Obj As EnvDTE80.DTE2
    inst = Microsoft.VisualBasic.Interaction. _
    CreateObject("VisualStudio.DTE.10.0", "")
    dte80Obj = CType(inst, EnvDTE80.DTE2)
    MsgBox(dte80Obj.DisplayMode.ToString)
End Sub
' GetTypeFromProgID and CreateInstance method.
Public Sub Exec(ByVal commandName As String, ByVal executeOption _
As vsCommandExecOption, ByRef varIn As Object, ByRef varOut As _
Object,  ByRef handled As Boolean) Implements IDTCommandTarget.Exec
   handled = False
   If executeOption = _
      vsCommandExecOption.vsCommandExecOptionDoDefault Then
      If commandName = "VBTestAddin.Connect.VBTestAddin" Then
          CreateNewInstance2(_applicationObject)
          handled = True
          Exit Sub
      End If
   End If
End Sub

Private Sub CreateNewInstance2(ByVal dte As DTE2)
    Dim Type As System.Type
    Dim inst As Object
    Dim dte80Obj As EnvDTE80.DTE2
    Type = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0")
    inst = System.Activator.CreateInstance(Type, True)
    dte80Obj = CType(inst, EnvDTE80.DTE2)
    MsgBox(dte80Obj.DisplayMode.ToString)
End Sub
public void OnConnection(object application, ext_ConnectMode 
  connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    CreateNewInstance2(_applicationObject);
}

private void CreateNewInstance2(DTE2 dte)
{
    System.Type Type;
    object inst;
    EnvDTE80.DTE2 dte80Obj;
    Type = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
    inst = System.Activator.CreateInstance(Type, true);
    dte80Obj = (EnvDTE80.DTE2)inst;
    System.Windows.Forms.MessageBox.Show
      (dte80Obj.DisplayMode.ToString());
}
// Create a new instance of Visual Studio by using 
// GetTypeFromProgID and CreateInstance.
private void CreateNewInstance1()
{
    System.Type type = System.Type.GetTypeFromProgID
    ("VisualStudio.DTE.10.0");
    Object obj = System.Activator.CreateInstance(type, true);
    EnvDTE80.DTE2 dte8Obj = (EnvDTE80.DTE2)obj;
}

De Visual Basic örnek, her iki bildiri oluştur Yeni bir örneğini Visual Studio IDE.İlk ifade, doğrudan ikinci ifade yeni bir örneğini oluştururken, yeni bir çözüm oluşturarak yeni bir örneğini oluşturur.

Varolan örneği başvurusu elde etmek için Visual Studio IDE kullanabilirsiniz GetObject Function.Aşağıdakilerden birini yapabilirsiniz:

Private Sub GetInstance1 ()
    Dim inst As Object
    Dim dte80Obj As EnvDTE80.DTE2
    inst = Microsoft.VisualBasic.Interaction.GetObject(, _
    "VisualStudio.DTE.10.0")
    dte80Obj = CType(inst, EnvDTE80.DTE2)
    MsgBox(dte80Obj.DisplayMode.ToString)
End Sub

' -or-
Dim inst As Object
inst = Microsoft.VisualBasic.Interaction.GetObject(, _
  "VisualStudio.Solution.8.0")
' ---------------------------
' -or-
' Change the path to your application.
Dim inst As Object
inst = Microsoft.VisualBasic.Interaction.GetObject _
  ("C:\Projects\WindowsApplication1\WindowsApplication1.sln")
' ---------------------------
' -or-
' Change the path to your application.
Dim inst As Object
inst = Microsoft.VisualBasic.Interaction.GetObject _
  ("C:\Projects\WindowsApplication1\WindowsApplication1.sln", _
  "VisualStudio.Solution.8.0")

Ayrıca bkz.

Kavramlar

Eklenti kayıt

Diğer Kaynaklar

Eklentiler ve sihirbazlar oluşturma