Sdílet prostřednictvím


Postupy: Vlastnosti přístupu konkrétních typů projektů

Model Visual Studio obecné automatizace poskytuje kolekci Properties, kterou lze použít pro přístup ke kolekcím Properties libovolného typu projektu Visual Studio.Mimo jiné vlastnosti projektu umožňují řídit nastavení zabezpečení, název sestavení a tak dále.

Chcete-li ručně nastavit a prozkoumat vlastnosti projektu, otevřete projekt v integrovaném vývojovém prostředí (IDE) Visual Studio.V nabídce Projekt klikněte na Vlastnosti.Okno Vlastnosti obsahuje několik záložek a každé podokno obsahuje vlastnosti, které se používají k definování a řízení chování projektů.Model automatizace umožňuje řídit tato nastavení programově.Konkrétně vlastnosti v ProjectProperties3 umožňují řídit vlastnosti projektu v podoknech Aplikace, Zdroje, Nastavení, Cesty odkazů a Podepisování na stránce Vlastnosti projektů Visual C#.Vlastnosti definované v VBProjectProperties3 umožňují řídit nastavení vlastnosti v projektech Visual Basic v podoknech Aplikace, Zdroje, Nastavení, Odkazy a Podepisování na stránce Vlastnosti.

Vlastnosti pro projekty Visual C# jsou definovány v ProjectProperties3.Vlastnosti pro projekty Visual Basic jsou definovány v VBProjectProperties3.Vlastnosti MyApplication a MyType jsou specifické pouze pro projekty Visual Basic.Zbývající vlastnosti v VBProjectProperties3 jsou stejné jako vlastnosti v ProjectProperties3.

K těmto vlastnostem nelze získat přístup přímým přetypováním objektu Properties na objekt ProjectProperties3 nebo VBProjectProperties3.Místo toho je nutné tyto vlastnosti zpřístupnit pomocí kolekce Properties zadáním názvu vlastnosti pro určitý typ projektu jako řetězec a určit tak Property.Například kód EnvDTE.Property prop = EnvDTE.Properties.Item("ApplicationIcon"); umožňuje přístup k vlastnosti ApplicationIcon.

Ve skutečnosti konfigurační vlastnosti definované v ProjectProperties3 a VBProjectProperties3 jsou referenční seznam dostupných vlastností pro konkrétní projekty, které mohou být přístupné jako vlastnost položek pro projekt.

Následující kroky podrobně popisují, jak získat programový přístup k těmto vlastnostem v doplňku Visual Studio.

[!POZNÁMKA]

Váš počítač může zobrazit jiné názvy nebo umístění pro některé prvky uživatelského rozhraní sady Visual Studio v následujících pokynech.Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením.Další informace naleznete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.

Přístup k vlastnostem pro konkrétní typ projektu

  1. Vytvořte projekt doplňku Visual Studio pomocí Visual C#.

  2. V nabídce Projekt klepněte na tlačítko Přidat odkaz, klepněte na kartu .NET, vyberte VSLangProj, VSLangProj2, VSLangProj80 a Sytem.Windows.Forms a klikněte na tlačítko OK.

  3. Na začátek souboru Connect.cs přidejte následující příkazy using.

    using VSLangProj;
    using VSLangProj2;
    using VSLangProj80;
    using VSLangProj90;
    using VSLangProj100;
    using System.Windows.Forms;
    
  4. Přidejte volání nové metody s názvem VSProjectProperies do metody OnConnection po řádku, který nastaví metodu _addInstance, jak je uvedeno:.

    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    VSProjectProperties(_applicationObject);
    
  5. Přidejte metodu VSProjectProperties přímo pod metodu OnConnection.

    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);
        }
    }
    

    Metoda VSProjectProperties stanoví i získá vlastnost AssemblyName jejím předáním jako Property řetězce položky do kolekce Properties.Pokud se jedná o projekt Visual Basic, metoda VSProjectProperties také nastaví a získá vlastnost MyType.

    Vzorový oddíl obsahuje kompletní kód.

  6. Sestavte doplněk kliknutím na Sestavit řešení v nabídce Sestavení.

  7. Otevřete projekt Visual C# nebo Visual Basic v IDE Visual Studio.

  8. V nabídce Nástroje klepněte na tlačítko Správce doplňků a vyberte doplněk z dialogového okna Správce doplňků.Klepněte na tlačítko OK a spusťte tak doplněk.

  9. Ověřte, že byl změněn název sestavení, kliknutím na Vlastnosti v nabídce Projektu a kliknutím na kartu Aplikace v okně Vlastnosti.

    Pole Název sestavení odráží změnu, kterou jste provedli programově.

Příklad

Následující příklad je základní doplněk Visual Studio, který ukazuje, jak přistupovat k vlastnosti pro konkrétní typy projektu pomocí automatizace 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

Probíhá kompilace kódu

Chcete-li tento kód zkompilovat, vytvořte nový projekt doplňku Visual Studio a nahraďte kód metody OnConnection kódem v příkladu.Další informace o spuštění doplňku naleznete v části Postupy: Řízení doplňků pomocí Správce doplňků.

Viz také

Další zdroje

Project Properties

Přístup k projektu, položce projektu a k vlastnostem konfigurace specifickým pro typ projektu