Bu sayfa faydalı mıydı?
Bu içerik hakkındaki geri bildiriminiz önemli. Ne düşündüğünüzü bilmemize izin verin.
İlave geri bildirim?
1500 karakter kaldı
MSDN Library
Bu makale makine tarafından çevrilmiştir. Orijinal metni görmek için imlecinizi makaledeki cümlelerin üzerine getirin. Daha Fazla Bilgi.
Çeviri
Original
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

WPF Uygulaması Oluşturma (WPF)

Windows Presentation Foundation (WPF) uygulamaları .NET Framework çalıştırılabilirleri (.exe), kitaplıkları (.dll), veya her iki tür derlemenin birleşiminden oluşturulabilir. Bu konuda nasıl tanıtır WPF uygulamaları ve anahtar oluşturma işlemi adımlarını açıklar.

Bu konu, aşağıdaki bölümleri içermektedir.

wpf uygulama aşağıdaki şekillerde derlenebilir:

WPF projesi yapılandırıldığında, dile özgü ve WPF'ye özgü hedeflerin birleşimi çağrılır. Bu hedefleri yürütme işleminin adı ardışık düzen yapılandırmadır, ve anahtar adımlar aşağıdaki şekil tarafından gösterilmiştir.

WPF build process

Aa970678.collapse_all(tr-tr,VS.110).gifOluşturma Öncesi Başlangıçları

Yapılandırmadan önce, MSBuild aşağıdakiler de dahil olmak üzere önemli araçlar ve kitaplıkların konumunu belirler:

  • .NET Framework.

  • Windows SDK dizinleri.

  • WPF başvuru derlemelerinin konumu.

  • Derleme arama yollarının özelliği.

İlk Yerleşim yeri MSBuild derlemeler arar ise başvurusunu derleme dizini (%ProgramFiles%\Reference Assemblies\Microsoft\Framework\v3.0\). Bu adım sırasında, yapılandırma işlemi ayrıca çeşitli özellikler ile öğe gruplarını başlatır ve gerekli temizleme işini gerçekleştirir.

Aa970678.collapse_all(tr-tr,VS.110).gifBaşvuruları Çözme

Yapılandırma işlemi uygulama projesini yapılandırmak için gerekli olan derlemeleri bulur ve bağlar. Bu mantık ResolveAssemblyReference görevinin içinde yer alır. Proje dosyasında Reference olarak bildirilen tüm derlemeler, arama yolları ve sistemde yüklü olan derlemelerdeki meta veriler hakkında bilgi ile birlikte görev için sağlanır. Görev, çıktı bildirimlerinde gösterilmesi gerekmeyen çekirdek WPF derlemelerini seçmek için, derlemeleri arar ve yüklü derlemenin meta verilerini kullanır. Bu, ClickOnce bildirimlerindeki gereksiz bilgileri önlemek için yapılır. Örneğin, PresentationFramework.dll WPF'de ve onun için oluşturulmuş bir uygulamanın temsilcisi olarak kabul edilebilir ve dahası tüm WPF derlemeleri, .NET Framework yüklü olan her makinede aynı konumda olduğundan, bildirimlerdeki tüm .NET Framework başvuru derlemeleri üzerindeki tüm bilgileri dahil etmek gerekmez.

Aa970678.collapse_all(tr-tr,VS.110).gifBiçimlendirmeyi Derleme — 1. Geçiş

Bu adımda, XAML dosyaları ayrıştırılır ve derlenir, böylece çalışma zamanı XML ayrıştırmada ve özellik değerlerini doğrulamada zaman harcanmaz. Derlenmiş XAML dosyasını önceden simgeleştirilir, böylece çalışma zamanında bunu yüklemek XAML dosyasını yüklemekten daha hızlı olur.

Bu adım sırasında, aşağıdaki etkinlikler, Page yapı öğesi olan her XAML dosyası için gerçekleşir:

  1. XAML dosyası biçimlendirme derleyicisi tarafından ayrıştırılır.

  2. Derlenmiş gösterim XAML için oluşturulur ve obj\Release klasörüne kopyalanır.

  3. Yeni bir parçalı sınıfın CodeDOM gösterimi oluşturulur ve obj\Release klasörüne kopyalanır.

Ayrıca, dile özgü kod dosyası her XAML dosyası için oluşturulur. Örneğin, Visual Basic projesindeki Page1.xaml sayfası için bir Page1.g.vb oluşturulur; C# projesindeki Page1.xaml sayfası için bir Page1.g.cs oluşturulur. Dosya adındaki ".g", dosyanın biçimlendirme dosyasının en üst düzey öğesi için parçalı sınıf bildirimi içeren bir kod oluşturduğunu gösterir (Page veya Window gibi). Sınıf, sınıf için herhangi bir yerde, genellikle arka plan kod dosyası Page1.xaml.cs'de, başka bir bildirim olduğunu belirtmek için C#'da (Visual Basic'de Extends) partial değiştiricisi ile bildirilmiştir.

Parçalı sınıf, uygun temel sınıftan (sayfa için Page gibi) genişletilir ve System.Windows.Markup.IComponentConnector arayüzünü uygular. IComponentConnector arayüzünün, bileşeni başlatmak ve içeriğindeki öğelerin adlarıyla olayları bağlamak için yöntemleri vardır. Sonuç olarak, üretilen kod dosyası aşağıdakine benzer bir yöntem uygulamasına sahiptir:

public void InitializeComponent() {
    if (_contentLoaded) {
        return;
    }
    _contentLoaded = true;
    System.Uri resourceLocater = 
        new System.Uri(
            "window1.xaml", 
            System.UriKind.RelativeOrAbsolute);
    System.Windows.Application.LoadComponent(this, resourceLocater);
}

Varsayılan değer olarak, biçilendirme derlemesi aynı AppDomain'de MSBuild altyapısı gibi çalışır. Bu önemli başarım kazancı sağlar. Bu davranış AlwaysCompileMarkupFilesInSeparateDomain özelliği ile değiştirilebilir. Ayrı AppDomain'i kaldırarak, tüm başvuru derlemelerinin kaldırılmasının avantajı vardır.

Aa970678.collapse_all(tr-tr,VS.110).gifBiçimlendirmeyi Derleme — 2. Geçiş

Tüm XAML sayfaları biçimlendirme derlemesinin 1. geçişi sırasında derlenmez. Bu sefer, yerel olarak tanımlanmış tür başvuruları (aynı projede başka bir yerde kodda tanımlanan türlere başvurular) olan XAML dosyaları, derleme dışındadır. Bunun sebebi, yerel olarak tanımlanmış türlerin yalnızca kaynağında mevcut olması ve henüz derlenmiş olmamasıdır. Bunu belirlemek için, ayrıştırıcı, biçimlendirme dosyasındaki x:Name gibi öğeleri aramayı içeren buluşsal yöntemleri kullanır. Örnek bulunduğunda, biçimlendirme dosyasının derlemesi, ikinci biçimlendirme derleme geçişi bu dosyaları işledikten sonra, kod dosyalarının derlenmesine kadar ertelenir.

Aa970678.collapse_all(tr-tr,VS.110).gifDosya Sınıflandırma

Hangi uygulama derlemesine yerleştirileceğine bağlı olarak, yapılandırma işlemi çıktı dosyalarını farklı kaynak gruplarına yerleştirir. Resource olarak işaretlenen tüm veri dosyaları, tipik olarak yerelleştirilmemiş uygulamada ana derlemeye (çalıştırılabilire veya kitaplığa) yerleştirilir. UICulture projede ayarlandığında, tüm derlenmiş XAML dosyaları ve özellikle dile özgü olarak işaretlenmiş kaynakları, uydu kaynak derlemesine yerleştirilir. Ayrıca, tüm dilden bağımsız kaynaklar, ana derlemeye yerleştirilir. Yapılandırma işleminin bu adımında, o belirleme yapılır.

Proje dosyasındaki ApplicationDefinition, Page, ve Resource yapı eylemleri, dosyanın dile özgü veya dilden bağımsız olup kullanılması belirleyen, Localizable meta verileri ile genişletilebilir (kabul edilebilir değerler true ve false'dur).

Aa970678.collapse_all(tr-tr,VS.110).gifÇekirdeği Derleme

Çekirdek derleme adımı kod dosyalarının derlenmesini içerir. Bu, dile özgü hedef dosyaları Microsoft.CSharp.targets ve Microsoft.VisualBasic.targets'daki mantıkla yönetilir. Buluşsal yöntemler tek bir biçimlendirme derleyici geçişinin yeterli olduğunu belirlediyse, ana derleme oluşturulur. Ancak, projedeki bir veya daha fazla XAML dosyasının yerel olarak tanımlanmış tür başvuruları varsa, biçimlendirme derlemesinin ikinci geçişi tamamlandıktan sonra, son uygulama derlemesinin oluşturulabilmesi için geçici .dll dosyası oluşturulur.

Aa970678.collapse_all(tr-tr,VS.110).gifBildirim Oluşturma

Yapılandırma işleminin sonunda, tüm uygulama derlemeleri ve içerik dosyaları hazır olduktan sonra, uygulamanın ClickOnce bildirimleri oluşturulur.

Dağıtım bildirim dosyası dağıtım modeli açıklar: geçerli sürümü, güncelleştirme davranışını ve dijital imza ile birlikte yayımcı kimliği. Bu bildirim, dağıtımı işleyen yöneticiler tarafından yazılmayı amaçlanmıştır. Dosya uzantısı (XAML tarayıcısı uygulamaları (XBAP'ler) için) .xbap ve yüklü uygulamaları için .application'dır. Önceki HostInBrowser proje özelliği tarafından dikte edilir ve sonuç olarak bildirim, uygulamayı tarayıcı barındıran olarak tanımlar.

Uygulama bildirimi (bir. exe.manifest dosyası) uygulama derlemeler ile bağımlı kitaplıkları açıklar, ve uygulama için gereken izinleri listeler. Bu dosya, uygulama geliştiricisi tarafından yazılmayı amaçlanmıştır. ClickOnce uygulamasını başlatmak için, kullanıcı uygulamanın dağıtım bildirim dosyasını açar.

Bu dosya bildirim dosyaları her zaman XBAP'ler için oluşturulur. Yüklü uygulamalar için, GenerateManifests özelliği true değeri ile proje dosyasında belirtilmediyse, oluşturulmaz.

XBAP'lerNormal Internet bölgesi uygulamaları için atanan bu izinleri üstündeki iki ek izinleri almak: WebBrowserPermission ve MediaPermission. WPF yapılandırma sistemi, uygulama bildiriminde bu izinleri bildirir.

WPF yapılandırma sistemi artımlı derlemeler için destek sağlar. Biçimlendirme veya kodda yapılan değişiklikleri algılama oldukça mantıklıdır, ve yalnızca değişiklikten etkilenecek olan yapıları derler. Artımlı derleme mekanizması aşağıdaki dosyaları kullanır:

  • Geçerli derleyici durumunu korumak için, $(AssemblyName)_MarkupCompiler.Cache dosyası.

  • Yerel olarak tanımlanmış türlere başvurularıyla XAML dosyalarını önbelleğe almak için $(AssemblyName)_MarkupCompiler.lref dosyası.

Artımlı derlemeyi yöneten kurallar kümesi aşağıdadır:

  • Dosya, yapılandırma sisteminin değişimi algıladığı en küçük birimdir. Bu nedenle, kod dosyası için, yapılandırma sistemi, bir türü değiştirdiyseniz veya kod eklediyseniz bildiremez. Aynısı proje dosyaları için geçerlidir.

  • Artımlı derleme mekanizmasının, XAML sayfasının bir sınıfı tanımladığından veya diğer sınıfları kullandığından emin olması gerekir.

  • Reference girişleri değişirse, tüm sayfaları yeniden derleyin.

  • Kod dosyası değişirse, yerel olarak tanımlanmış tür başvurularıyla tüm sayfaları yeniden derleyin.

  • XAML dosyası değişirse:

    • XAML Olarak bildirilen Page projedeki:, XAML değil yerel olarak tanımlanan türle başvuru, derlemeniz, XAML tüm artı XAML sayfalar yerel başvurular; XAML tümünü yeniden derle yerel başvuru var XAML yerel başvurular içeren sayfaları.

    • XAML Olarak bildirilen ApplicationDefinition projesinde: tümünü yeniden derle XAML sayfaları (nedeni: her XAML referansı olan bir Application değişmiş olabilir türü).

  • XAML dosyası yerine, proje dosyası kod dosyasını uygulama tanımı olarak bildiriyorsa:

    • Proje dosyasında ApplicationClassName değerinin değişip değişmediğini denetleyin (yeni bir uygulama türü var mı?). Bu durumda, tüm uygulamayı yeniden derleyin.

    • Aksi halde, yerel başvuruları olan tüm XAML sayfalarını yeniden derleyin.

  • Proje dosyası değişirse: tüm önceki kurallar ve ne çekirdekler gerektiği konusuna bakın. Tam yeniden aşağıdaki özellikleri tetikleyecek şekilde değişir: AssemblyName, IntermediateOutputPath, RootNamespace, ve HostInBrowser.

Aşağıdaki yeniden derleme senaryoları şunlardır:

  • Tüm uygulama yeniden derlenmiştir.

  • Yalnızca yerel olarak tanımlanan tür başvuruları olan XAML dosyaları yeniden derlenir.

  • Hiçbir şey yeniden derlenmez (projedeki hiçbir şey değişmemişse).

Topluluk İçeriği

Show:
© 2015 Microsoft