Aracılığıyla paylaş


Nasıl yapılır: erişim özelliklerini belirli proje türleri

Visual Studio Genel otomasyon modeli sağlar Properties kullanılabilecek koleksiyonu erişim için Properties herhangi biri Visual Studio proje türü.Bunun yanı sıra, proje özellikleri denetimi güvenlik ayarları, derleme adı ve benzerleri için sağlar.

El ile ayarlayın ve proje özelliklerini incelemek için bir proje açın Visual Studio tümleşik geliştirme ortamı (IDE).Üzerinde Proje menüsünü tıklatın özelliklerini.Özelliklerini penceresinde birden fazla sekme vardır ve her bölme tanımlamak ve projeleri davranışını denetlemek için kullanılan özellikleri listeler.Bu ayarları denetlemek otomasyon modeli sağlar programlı.Özellikle, Özellikler, ProjectProperties3 bulunan Proje Özellikleri denetlemenize olanak sağlamak Uygulama, kaynakları, ayarları, Başvuru yolları ve imzalama pencere bölmelerinin özellikleri için sayfa Visual C# projeleri.Tanımlanan özellikleri VBProjectProperties3 özellikleri ayarlarını denetlemesine olanak Visual Basic bulunan projeler, Uygulama, kaynakları, ayarları, başvuruları ve imzalama pencere bölmelerinin özelliklerini sayfa.

Özelliklerini Visual C# projeleri içinde tanımlanan ProjectProperties3.Özelliklerini Visual Basic projeleri içinde tanımlanan VBProjectProperties3.MyApplication Ve MyType özgü özellikler Visual Basic yalnızca projeleri.Özellikler, geri kalanı VBProjectProperties3 özellikler aynıdır ProjectProperties3.

Bu özellikleri doğrudan kaldýrarak erişilemez bir Properties itiraz bir ProjectProperties3 veya bir VBProjectProperties3 nesne.Bunun yerine, bu özellikleri üzerinden erişilmesi gerekir Properties tarafından özelliğinin adı için proje türünü belirtmek için bir dize olarak sağlama toplama Property.Örneğin, kod, EnvDTE.Property prop = EnvDTE.Properties.Item("ApplicationIcon"); erişmenize olanak sağlayan ApplicationIcon özelliği.

Özellikler etkili, tanımlanan ProjectProperties3 ve VBProjectProperties3 özelliği öğeleri proje olarak erişilen belirli projeler için kullanılabilir özellikleri başvuru listesi verilmiştir.

Program aracılığıyla da bu özelliklere nasıl erişileceğini aşağıdaki adımları ayrıntılı bir Visual Studio eklentisi.

[!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 Araçlar menüsünden İçeri ve Dışarı Aktarma Ayarları'nı seçin.Daha fazla bilgi için bkz. Visual Studio ayarları.

Belirli türde bir Proje Özellikleri'ne erişmek için

  1. Oluşturma bir Visual Studio kullanarak eklenti projesinin Visual C#.

  2. Üzerinde Proje menüsünde,'ı Add Reference,'ı .net sekmesini seçin VSLangProj, VSLangProj2, ve VSLangProj80, ve Sytem.Windows.Forms 'ı tıklatın ve Tamam.

  3. Kullanarak-aþaðýdakiifadeleri Connect.cs dosyanın en üstüne ekleyin.

    using VSLangProj;
    using VSLangProj2;
    using VSLangProj80;
    using VSLangProj90;
    using VSLangProj100;
    using System.Windows.Forms;
    
  4. Bir çağrı adlı yeni bir yöntem eklemek VSProjectProperies ayarlar satırdan OnConnection yöntemine _addInstance gösterilen yöntem:.

    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    VSProjectProperties(_applicationObject);
    
  5. OnConnection yönteminin hemen altındaki VSProjectProperties yöntemine 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 ayarlar hem alır AssemblyName olarak, iletme özelliğini bir Property dizeye Öğe Properties koleksiyonu.Proje ise bir Visual Basic proje, VSProjectProperties yöntemini de belirler ve alır MyType özelliği.

    Tam kod örnek bölümünde listelenir.

  6. Eklenti Oluştur'ı tıklatarak Build Solution , Build menü.

  7. Open a Visual C# or Visual Basic project in the Visual Studio IDE.

  8. Üzerinde araçları menüsünde tıklatın Add-in Manager, eklentiniz alanından seçin ve Add-In Manager iletişim kutusu.Tıklatın Tamam eklenti çalıştırmak için.

  9. Derleme adı tıklatarak değiştiğini doğrulamak özelliklerini üzerinde Proje menüsünü ve ardından seçerek Uygulama sekmesinde özelliklerini pencere.

    Derleme adı alan programlı olarak yaptığınız değişikliği yansıtır.

Örnek

Aşağıdaki örnek bir temel olan Visual Studio , Otomasyon kullanarak proje türlerine özgü özelliklere nasıl erişileceğini gösteren eklenti Visual Studio.

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 derlemeye yeni bir oluşturmak Visual Studio eklenti projesi ve örnek kodda OnConnection yönteminin kodu Değiştir.Bir eklenti çalıştırma hakkında daha fazla bilgi için bkz: Nasıl yapılır: denetim Eklenti Yöneticisi'ni kullanarak eklentileri.

Ayrıca bkz.

Diğer Kaynaklar

Project Properties

Proje türü belirli proje ve proje öðesi yapılandırma özelliklerini erişme