Aracılığıyla paylaş


Proje ve Yapılandırma Özellikleri için Destek

Visual Studio tümleşik geliştirme ortamındaki (IDE) Özellikler penceresi proje ve yapılandırma özelliklerini görüntüleyebilir. Kullanıcının uygulamanızın özelliklerini ayarlayabilmesi için kendi proje türünüz için bir özellik sayfası sağlayabilirsiniz.

Çözüm Gezgini'da bir proje düğümü seçip Proje menüsünde Özellikler'e tıklayarak, proje ve yapılandırma özelliklerini içeren bir iletişim kutusu açabilirsiniz. Visual C# ve Visual Basic'te ve bu dillerden türetilen proje türlerinde, bu iletişim kutusu Genel, Ortam, Seçenekler İletişim Kutusu'nda sekmeli sayfa olarak görüntülenir. Daha fazla bilgi için bkz . Derlemede Değil: İzlenecek Yol: Proje ve Yapılandırma Özelliklerini Ortaya Çıkarma (C#).

Projeler için Yönetilen Paket Çerçevesi (MPFProj), yeni proje sistemi oluşturmak ve yönetmek için yardımcı sınıflar sağlar. Kaynak kodu ve derleme yönergelerini Projeler için MPF - Visual Studio 2013'te bulabilirsiniz.

Proje ve Yapılandırma Özelliklerinin Kalıcılığı

Proje ve yapılandırma özellikleri, proje türüyle ilişkilendirilmiş herhangi bir dosya adı uzantısına sahip olan bir proje dosyasında kalıcıdır; örneğin, .csproj, .vbproj ve .myproj. Dil projeleri genellikle proje dosyasını oluşturmak için bir şablon dosyası kullanır. Ancak, proje türlerini ve şablonlarını ilişkilendirmenin birkaç yolu vardır. Daha fazla bilgi için bkz . Şablon Dizin Açıklaması (. Vsdir) Dosyaları.

Proje ve yapılandırma özellikleri, şablon dosyasına öğe eklenerek oluşturulur. Bu özellikler daha sonra bu şablonu kullanan proje türü kullanılarak oluşturulan tüm projelerde kullanılabilir. Visual C# projeleri ve MPFProj'un her ikisi de şablon dosyaları için Derlemede Değil: MSBuild'e Genel Bakış şemasını kullanır. Bu dosyaların her yapılandırma için bir PropertyGroup bölümü vardır. Projelerin özellikleri genellikle yapılandırma bağımsız değişkeni null dize olarak ayarlanmış olan ilk PropertyGroup bölümünde kalıcı hale gelir.

Aşağıdaki kod, temel bir MSBuild proje dosyasının başlangıcını gösterir.

<Project MSBuildVersion="2.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Name>SomeProjectSix</Name>
    <SchemaVersion>2.0</SchemaVersion>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <Optimize>false</Optimize>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <Optimize>true</Optimize>

Bu proje dosyasında <Name> ve <SchemaVersion> proje özellikleridir ve <Optimize> bir yapılandırma özelliğidir.

Proje dosyasının proje ve yapılandırma özelliklerini kalıcı hale getirmek projenin sorumluluğundadır.

Not

Bir proje, yalnızca varsayılan değerlerinden farklı özellik değerlerini kalıcı hale getirerek kalıcılığı iyileştirebilir.

Proje ve Yapılandırma Özellikleri için Destek

sınıfı proje Microsoft.VisualStudio.Package.SettingsPage ve yapılandırma özellik sayfalarını uygular. varsayılan uygulaması SettingsPage , genel özellik kılavuzundaki bir kullanıcıya genel özellikler sunar. yöntemi, Microsoft.VisualStudio.Package.HierarchyNode.GetPropertyPageGuids proje özelliği kılavuzları için'den SettingsPage türetilen sınıfları seçer. yöntemi, Microsoft.VisualStudio.Package.ProjectNode.GetConfigPropertyPageGuids yapılandırma özelliği kılavuzları için türetilen SettingsPage sınıfları seçer. Proje türünüz uygun özellik sayfalarını seçmek için bu yöntemleri geçersiz kılmalıdır.

SettingsPage sınıfı ve Microsoft.VisualStudio.Package.ProjectNode sınıfı, proje ve yapılandırma özelliklerini kalıcı hale getirmek için şu yöntemleri sunar:

  • Microsoft.VisualStudio.Package.ProjectNode.GetProjectProperty ve Microsoft.VisualStudio.Package.ProjectNode.SetProjectProperty proje özelliklerini kalıcı hale.

  • Microsoft.VisualStudio.Package.SettingsPage.GetConfigProperty ve Microsoft.VisualStudio.Package.SettingsPage.SetConfigProperty yapılandırma özelliklerini kalıcı hale.

    Not

    ve Microsoft.VisualStudio.Package.ProjectNode sınıflarının Microsoft.VisualStudio.Package.SettingsPage uygulamaları, proje dosyasından Microsoft.Build.BuildEngine proje ve yapılandırma özelliklerini almak ve ayarlamak için (MSBuild) yöntemlerini kullanır.

    Türetdiğiniz SettingsPage sınıfın proje dosyasının proje veya yapılandırma özelliklerini kalıcı hale getirmek için ve Microsoft.VisualStudio.Package.SettingsPage.BindProperties uygulaması Microsoft.VisualStudio.Package.SettingsPage.ApplyChanges gerekir.

ProvideObjectAttribute ve Kayıt Defteri Yolu

türetilen SettingsPage sınıflar VSPackage'lar arasında paylaşılacak şekilde tasarlanmıştır. VSPackage'ın öğesinden türetilmiş bir sınıf oluşturmasını mümkün kılmak için, öğesinden SettingsPageMicrosoft.VisualStudio.Shell.Packagetüretilen bir sınıfa a Microsoft.VisualStudio.Shell.ProvideObjectAttribute ekleyin.

[ProvideObject(typeof(MyProjectPropertyPage))]
[Guid("e815d8ad-49bf-427d-99c8-009db3e56ab9")]
public sealed class MyPackage : Package

Özniteliğin eklendiği VSPackage önemli değildir. Bir VSPackage Visual Studio'ya kaydedildiğinde, oluşturulabilecek herhangi bir nesnenin sınıf kimliği (CLSID), çağrısının onu oluşturabilmesi için CreateInstance kaydedilir.

Oluşturulabilen bir nesnenin kayıt defteri yolu, sözcüğü, CLSID ve nesne türünün guid değeri birleştirilerek UserRegistryRootbelirlenir. Sınıfın guid değeri {3c693da2-5bca-49b3-bd95-ffe0a39dd723} ise MyProjectPropertyPage ve UserRegistryRoot HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp ise, ardından kayıt defteri yolu HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp\CLSID\{3c693da2-5bca-49b3-bd95-ffe0a39dd723} olur.

Proje ve Yapılandırma Özelliği Öznitelikleri ve Düzeni

CategoryAttribute, DisplayNameAttributeve DescriptionAttribute öznitelikleri, genel özellik sayfasındaki proje ve yapılandırma özelliklerinin düzenini, etiketlemesini ve açıklamasını belirler. Bu öznitelikler sırasıyla kategoriyi, görünen adı ve seçeneğin açıklamasını belirler.

Not

Eşdeğer öznitelikler, SRCategory, LocDisplayName ve SRDescription, yerelleştirme için dize kaynaklarını kullanır ve Projeler için MPF - Visual Studio 2013'te tanımlanır.

Aşağıdaki kod parçasını göz önünde bulundurun:

public bool IsDirty { get; set; }
private string myConfigProp;

[Category("My Category")]
[DisplayName("My Config Property")]
[Description("My Description")]
public string MyConfigProp
{
    get { return myConfigProp; }
    set { myConfigProp = value; IsDirty = true; }
}

MyConfigProp Yapılandırma özelliği yapılandırma özelliği sayfasında, Kategorim kategorisinde Yapılandırma Özelliğim olarak görünür. Seçenek belirlenirse, açıklama panelinde Açıklamam şeklinde bir açıklama görüntülenir.