Udostępnij za pośrednictwem


Jak: właściwości konfiguracji dostępu dla określonych typów projektów

Visual Studio Zawiera ogólne automatyzacji modelu Properties kolekcji, która może być używany do dostępu Properties zbiory wszelkich Visual Studio typu projektu.Między innymi właściwości projektu pozwalają kontrolować ustawienia zabezpieczeń, konfigurację kompilacji i konfiguracji debugowania.

Aby ręcznie ustawić i bada właściwości projektu, otwórz projekt w Visual Studio zintegrowane środowisko dewelopowania (IDE).Na Projekt kliknij menu Właściwości.Właściwości okno ma wiele kart i każde okienko zawiera listę właściwości, które są używane do definiowania i kontrolować zachowanie projektów.Model automatyzacji pozwala sterować ustawieniami programowo.W szczególności właściwości wymienionych w CSharpProjectConfigurationProperties4, VBProjectConfigurationProperties4, i ProjectConfigurationProperties3 służą do określania właściwości projektu można odnaleźć na budować (skompilować dla Visual Basic projektów) i debugowaniaWłaściwości okienek z Właściwości stronę aktualnie aktywnej konfiguracji. 

Można także różnych konfiguracji aktualnie aktywne, uzyskując dostęp do ConfigurationManager obiektu.Aby uzyskać więcej informacji, zobacz Jak: tworzenie rozwiązania i konfiguracje budowania projektu.

Właściwości konfiguracji dla Visual C# projekty są zdefiniowane w CSharpProjectConfigurationProperties4.ErrorReport i LanguageVersion właściwości są specyficzne dla Visual C# tylko projektów.Pozostałe właściwości w CSharpProjectConfigurationProperties3 są takie same jak właściwości w ProjectConfigurationProperties3.

Te właściwości konfiguracji nie mogą uzyskiwać bezpośrednio rzutowanie Property obiektu do CSharpProjectConfigurationProperties3 lub ProjectConfigurationProperties3 obiektu.Dostęp do tych właściwości można również uzyskać, przekazując nazwę elementu konfiguracji jako ciąg znaków, jak pokazano poniżej:

    EnvDTE.Project proj;
    EnvDTE.Configuration config;
    EnvDTE.Properties configProps;
    EnvDTE.Property prop;
    proj = DTE.Solution.Projects.Item(1);
    config = proj.ConfigurationManager.ActiveConfiguration;
    configProps = config.Properties;
    prop = configProps.Item("EnableSQLServerDebugging")

Kod ten uzyskuje dostęp do albo CSharpProjectConfigurationProperties3.EnableSQLServerDebugging lub ProjectConfigurationProperties3.EnableSQLServerDebugging właściwość w zależności od tego, czy proj definiuje zmienną Visual C# lub Visual Basic projektu.

W efekcie właściwości konfiguracji zdefiniowane w CSharpProjectConfigurationProperties3 lub ProjectConfigurationProperties3 uzyskać listę właściwości konfiguracji dostępne dla szczególnych projektów, które mogą być udostępniane jako elementy właściwości konfiguracji za pośrednictwem projektu są Properties kolekcji.

Poniższe kroki szczegółowo sposób programowego dostępu do właściwości konfiguracji aktualnie aktywnych konfiguracji w Visual Studio dodatek.

[!UWAGA]

Okien dialogowych i poleceń menu, którą widzisz mogą różnić się od tych opisanych w pomocy, w zależności od tego, aktywne ustawienia lub edition.Procedury te zostały opracowane z ogólnych ustawień rozwoju aktywnych.Aby zmienić ustawienia, wybierz polecenie Importuj i Eksportuj ustawienia na Narzędzia menu.Aby uzyskać więcej informacji, zobacz Visual Studio, ustawienia.

Mieć dostęp do właściwości konfiguracji dla określonego typu projektu

  1. Tworzenie Visual Studio -w projekcie przy użyciu Visual C# i wybranie opcji, aby załadować dodatek, przy uruchamianiu programu Visual Studio.

  2. Na Projekt menu, kliknij przycisk Dodaj odwołanie, kliknij przycisk .NET kartę wybierz System.Windows.Forms, VSLangProj, VSLangProj2, i VSLangProj80i kliknij przycisk OK.

  3. Dodaj następujące przy użyciu instrukcje do początku pliku Connect.cs.

    using VSLangProj;
    using VSLangProj2;
    using VSLangProj80;
    using VSLangProj90;
    using VSLangProj100;
    using System.Windows.Forms;
    
  4. Dodaj poniższe wywołanie funkcji do funkcji OnConnection.

    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    VSProjectConfigProperties(_applicationObject);
    
  5. Dodaj metodę VSProjectConfigProperties, prawo poniżej metoda OnConnection.

    public void VSProjectConfigProperties(DTE2 dte)
    {
        try
        {
            // Open a Visual C# or Visual Basic project
            // before running this add-in.
            Project project;
            Configuration config;
            Properties configProps;
            Property prop;
            project = _applicationObject.Solution.Projects.Item(1);
            config = project.ConfigurationManager.ActiveConfiguration;
            configProps = config.Properties;
            prop = configProps.Item("PlatformTarget");
            MessageBox.Show("The platform target for this project is: "
     + prop.Value.ToString());
            prop = configProps.Item("WarningLevel");
            MessageBox.Show
    ("The warning level for this project is set to: " 
    + prop.Value.ToString());
            MessageBox.Show("Changing the warning level to 3...");
            prop.Value = "3";
            MessageBox.Show
    ("The warning level for this project is now set to: " 
    + prop.Value.ToString());
            if (project.Kind == PrjKind.prjKindCSharpProject)
            {
                MessageBox.Show("The project is a Visual C# Project");
                prop = configProps.Item("LanguageVersion");
                MessageBox.Show("The language version value is : " 
    + prop.Value.ToString());
                MessageBox.Show("Setting the language version to 
    ISO-1");
                prop.Value = "ISO-1";
                MessageBox.Show("The language version value is now: " 
    + prop.Value.ToString());
            }
    
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    

    Metoda VSProjectConfigProperties pobiera i wyświetla PlatformTarget wartości właściwości.To zarówno ustawia i pobiera WarningLevel właściwości.Jeśli projekt jest Visual C# projektu, metoda VSProjectConfigProperties ustawia i pobiera LanguageVersion właściwości.

  6. Budowanie dodatek, klikając Roztwór budować na budować Menu.

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

  8. Na Narzędzia menu, kliknij przycisk - w Menedżerzei wybierz dodatek z - W Menedżerze okno dialogowe.Kliknij przycisk OK do uruchomienia dodatku.

  9. Sprawdzanie poprawności, że poziom ostrzeżeń została zmieniona przez kliknięcie przycisku Właściwości na Projekt menu, a następnie wybierając budować kartę w Właściwości okna.

    Poziom ostrzegania o pole odzwierciedla zmiany dokonane w programowo.

  10. Aby sprawdzić ustawienia wersji języka dla Visual C# projektu na budować okienka Właściwości okno, kliknij na Zaawansowane.

    Wersji językowej pola Zaawansowane ustawienia tworzenia okno dialogowe odzwierciedla zmianę dodatek dokonane.

Przykład

Poniższy przykład stanowi podstawowy Visual Studio dodatek, który demonstruje, jak uzyskać dostęp do właściwości dla określonego typu projektu przy użyciu automatyzacji w Visual Studio.

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;
public void OnConnection(object application, 
ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    VSProjectConfigProperties(_applicationObject);
}
public void VSProjectConfigProperties(DTE2 dte)
{
    try
    {
        // Open a Visual C# or Visual Basic project
        // before running this add-in.
        Project project;
        Configuration config;
        Properties configProps;
        Property prop;
        project = _applicationObject.Solution.Projects.Item(1);
        config = project.ConfigurationManager.ActiveConfiguration;
        configProps = config.Properties;
        prop = configProps.Item("PlatformTarget");
        MessageBox.Show("The platform target for this project is: 
" + prop.Value.ToString());
        prop = configProps.Item("WarningLevel");
        MessageBox.Show
("The warning level for this project is set to: " 
+ prop.Value.ToString());
        MessageBox.Show("Changing the warning level to 3...");
        prop.Value = "3";
        MessageBox.Show
("The warning level for this project is now set to: " 
+ prop.Value.ToString());
        if (project.Kind == PrjKind.prjKindCSharpProject)
        {
            MessageBox.Show("The project is a Visual C# Project");
            prop = configProps.Item("LanguageVersion");
            MessageBox.Show("The language version value is : " 
+ prop.Value.ToString());
            MessageBox.Show("Setting the language version to ISO-1");
            prop.Value = "ISO-1";
            MessageBox.Show("The language version 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 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)
    VSProjectConfigProperties(_applicationObject)
End Sub
Sub VSProjectConfigProperties(ByVal dte As DTE2)
    ' Open a Visual C# or Visual Basic project
    ' before running this add-in.
    Try
        Dim project As Project
        Dim config As Configuration
        Dim configProps As Properties
        Dim prop As [Property]
        project = _applicationObject.Solution.Projects.Item(1)
        config = project.ConfigurationManager.ActiveConfiguration
        configProps = config.Properties
        prop = configProps.Item("PlatformTarget")
        MsgBox("The platform target for this project is: "  _
        & prop.Value.ToString())
        prop = configProps.Item("WarningLevel")
        MsgBox("The warning level for this project is set to: "  _
        & prop.Value.ToString())
        MsgBox("Changing the warning level to 3...")
        prop.Value = "3"
        MsgBox("The warning level for this project is now set to: " _
        & prop.Value.ToString())
        If project.Kind = PrjKind.prjKindCSharpProject Then
            MsgBox("The project is a Visual C# Project")
            prop = configProps.Item("LanguageVersion")
            MsgBox("The language version value is : "  _
            & prop.Value.ToString())
            MsgBox("Setting the language version to ISO-1")
            prop.Value = "ISO-1"
            MsgBox("The language version value is now: "  _
            & prop.Value.ToString())
        End If
    Catch ex As System.Exception
        MsgBox(ex.ToString)
    End Try
End Sub

Kompilowanie kodu

Aby skompilować kod, Utwórz nowy Visual Studio -w projekcie i Zastąp kod metody OnConnection z kodem w przykładzie.Aby uzyskać informacje o sposobach uruchamiania dodatku, zobacz Jak: dodatki formantu przy użyciu dodać Menedżera.

Zobacz też

Inne zasoby

Project Properties

Uzyskiwanie dostępu do określonego typu Projekt, element projektu i właściwości konfiguracji