Aracılığıyla paylaş


Nasıl yapılır: Belirli Proje Türlerinin Özelliklerine Erişim

Visual Studio genel otomasyon modeli, herhangi bir Visual Studio proje türünün Properties koleksiyonlarına erişmek için kullanılabilecek Properties koleksiyonunu sağlar.Bunun yanı sıra proje özellikleri, güvenlik ayarlarınızı, derleme adını ve daha fazlasını denetlemenize olanak tanır.

Proje özelliklerini el ile ayarlamak ve incelemek için, bir projeyi Visual Studio tümleşik geliştirme ortamında (IDE) açın.Proje menüsündeki Özellikler’i tıklayın.Özellikler penceresinde birden fazla sekme vardır ve her bölmede projelerin çalışma biçimini tanımlamak ve denetlemek için kullanılan özellikler listelenmektedir.Otomasyon modeli bu ayarları program aracılığıyla denetlemenize olanak verir.Özellikle, ProjectProperties3 içinde tanımlanan özellikler, Visual C# projeleri için Özellikler sayfasının Uygulama, Kaynaklar, Ayarlar, Başvuru Yolları ve İmzalama pencere bölmelerinde bulunan proje özelliklerini denetlemenize olanak verir.VBProjectProperties3 içinde tanımlanan özellikler, Özellikler sayfasının Uygulama, Kaynaklar, Ayarlar, Başvurular ve İmzalama pencere bölmelerinde bulunan Visual Basic projelerinin özellik ayarlarını denetlemenize olanak verir.

Visual C# projeleri özellikleri ProjectProperties3'de tanımlanmıştır.Visual Basic projeleri özellikleri VBProjectProperties3 öğesinde tanımlanmıştır.MyApplication ve MyType özellikleri yalnızca Visual Basic projelerine özgüdür.VBProjectProperties3 içindeki özelliklerin geri kalanı ProjectProperties3 özellikleriyle aynıdır.

Bir ProjectProperties3 veya VBProjectProperties3 nesnesine doğrudan bir Properties nesnesi atayarak bu özelliklere erişilemez.Bunun yerine, bu özelliklere Properties koleksiyonu üzerinden erişilmelidir; bu işlemde belirli proje türüyle ilgili özellik adı Property öğesini belirtmek üzere sağlanmalıdır.Örneğin EnvDTE.Property prop = EnvDTE.Properties.Item("ApplicationIcon"); kodu ApplicationIcon özelliğine erişmenizi sağlar.

Aslında, ProjectProperties3 ve VBProjectProperties3 içinde tanımlanan özelikler, proje özelliği öğeleri olarak erişilebilen belirli projelerin mevcut özelliklerinin referans listesidir.

Aşağıdaki adımlar, bir Visual Studio eklentisinde bu özelliklere program aracılığıyla nasıl erişileceğini ayrıntılı olarak anlatmaktadı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.

Belirli türde bir proje için özelliklere erişmek için

  1. Visual C# kullanarak Visual Studio eklenti projesi oluşturun.

  2. Proje menüsünde, Başvuru Ekle'ye tıklayın, .NET sekmesine tıklayın, VSLangProj, VSLangProj2, VSLangProj80, ve Sytem.Windows.Forms seçin ve Tamama tıklayın.

  3. Connects.ts dosyasının en üstüne aşağıdaki kullanım açıklamalarını ekleyin:

    using VSLangProj;
    using VSLangProj2;
    using VSLangProj80;
    using VSLangProj90;
    using VSLangProj100;
    using System.Windows.Forms;
    
  4. _addInstance yöntemini gösterildiği gibi ayarlayan satırdan sonra VSProjectProperies olarak adlandırılan yeni yönteme çağrıyı OnConnection yöntemine ekleyin:.

    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    VSProjectProperties(_applicationObject);
    
  5. OnConnection yönteminin hemen altına VSProjectProperties yöntemini ekleyin.

    public void VSProjectProperties(DTE2 dte)
    {
        try
        {
            // Open a Visual C# or Visual Basic project
            // before running this add-in.
            Project project;
            project = _applicationObject.Solution.Projects.Item(1);
            Property prop;
            prop = project.Properties.Item("AssemblyName");
            MessageBox.Show("The assembly name is: " 
    + prop.Value .ToString());
            prop.Value = "MyTestAssembly";
            MessageBox.Show("The assembly name is now: " 
    + prop.Value.ToString());
            // If the project is a Visual Basic project, set
            // the MyApplication property.
            if (project.Kind == "{F184B08F-C81C-45F6-A5F6-5ABD9991F28F}")
    
            {
                MessageBox.Show("The project is a Visual 
    Basic Project");
                prop = project.Properties.Item("MyType");
                MessageBox.Show("The MyType value is: " 
    + prop.Value.ToString());
                prop.Value = "Class Library";
                MessageBox.Show("The MyType value is now: " 
    + prop.Value.ToString());
            }
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    

    VSProjectProperties yöntemi, AssemblyName özelliğini bir Property öğe dizesi olarak Properties koleksiyonuna geçirerek hem ayarlar hem de alır.Proje ise bir Visual Basic projesi ise, VSProjectProperties yöntemi de MyType özelliğini ayarlar ve alır.

    Örnek bölümünde tüm kod gösterilmektedir.

  6. Oluştur Menüsünden Çözüm oluştur öğesine tıklayarak eklentiyi oluşturun.

  7. Visual Studio IDE içinde Visual C# veya Visual Basic projesini açın.

  8. Araçlar menüsünde Eklenti Yöneticisi'ni tıklayın ve Eklenti Yöneticisi iletişim kutusundan eklentinizi seçin.Eklentinizi çalıştırmak için Tamam'ı tıklayın.

  9. Proje menüsünde Özellikler'i tıklayıp Özellikler penceresindeUygulama sekmesini seçerek derleme adını değiştirdiğinizi doğrulayın.

    Derleme adı alanı, program aracılığıyla yaptığınız değişikliği yansıtır.

Örnek

Aşağıdaki örnek, Visual Studio içinde otomasyonu kullanarak, proje türlerine özgü özelliklere nasıl erişileceğini gösteren temel bir Visual Studio eklentisidir.

using System;
using System;
using Extensibility;
using EnvDTE;
using EnvDTE80;
using EnvDTE90;
using EnvDTE90a;
using EnvDTE100;
using System.Windows.Forms;
using VSLangProj;
using VSLangProj2;
using VSLangProj80;
using VSLangProj90;
using VSLangProj100;
namespace myAddin
    public void OnConnection(object application, 
ext_ConnectMode connectMode, object addInInst, ref Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
        VSProjectProperties(_applicationObject);
    }
    public void VSProjectProperties(DTE2 dte)
    {
        try
        {
            // Open a Visual C# or Visual Basic project
            // before running this add-in.
            Project project;
            project = _applicationObject.Solution.Projects.Item(1);
            Property prop;
            prop = project.Properties.Item("AssemblyName");
            MessageBox.Show("The assembly name is: " 
+ prop.Value .ToString());
            prop.Value = "MyTestAssembly";
            MessageBox.Show("The assembly name is now: " 
+ prop.Value.ToString());
            // If the project is a Visual Basic project, set
            // the MyApplication property.
            if (project.Kind == PrjKind.prjKindVBProject)
            {
                MessageBox.Show
("The project is a Visual Basic Project");
                prop = project.Properties.Item("MyType");
                MessageBox.Show("The MyType value is: " 
+ prop.Value.ToString());
                prop.Value = "Class Library";
                MessageBox.Show("The MyType value is now: " 
+ prop.Value.ToString());
            }
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
Imports System
Imports Microsoft.VisualStudio.CommandBars
Imports Extensibility
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports VSLangProj
Imports VSLangProj2
Imports VSLangProj80
Imports VSLangProj90
Imports VSLangProj100

    Public Sub OnConnection(ByVal application As Object, _
 ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object, _
 ByRef custom As Array) Implements IDTExtensibility2.OnConnection
        _applicationObject = CType(application, DTE2)
        _addInInstance = CType(addInInst, AddIn)
        VSProjectProperties(_applicationObject)
    End Sub
    Sub VSProjectProperties(ByVal dte As DTE2)
        ' Open a Visual C# or Visual Basic project
        ' before running this add-in.
        Try
            Dim project As Project
            project = _applicationObject.Solution.Projects.Item(1)
            Dim prop As [Property]
            prop = project.Properties.Item("AssemblyName")
            MsgBox("The assembly name is: "  _
            & prop.Value.ToString())
            prop.Value = "MyTestAssembly"
            MsgBox("The assembly name is now: "  _
            & prop.Value.ToString())
            ' If the project is a Visual Basic project, set
            ' the MyApplication property.
            If project.Kind = PrjKind.prjKindVBProject Then
                MsgBox("The project is a Visual Basic Project")
                prop = project.Properties.Item("MyType")
                MsgBox("The MyType value is: "  _
                & prop.Value.ToString())
                prop.Value = "Class Library"
                MsgBox("The MyType value is now: "  _
                & prop.Value.ToString())
            End If
        Catch ex As System.Exception
            MsgBox(ex.ToString)
        End Try
    End Sub

Kod Derleniyor

Bu kodu derlemek için, yeni bir Visual Studio eklentisi projesi oluşturun ve OnConnection yönteminin kodunu örnekteki kodla değiştirin.Eklenti çalıştırmak hakkında daha fazla bilgi edinmek için bkz. Nasıl yapılır: Eklenti Yöneticisini Kullanarak Eklentileri Denetleme.

Ayrıca bkz.

Diğer Kaynaklar

Project Properties

Proje Türüne Özgü Projeye, Proje Öğesine ve Yapılandırma Özelliklerine Erişim