Aracılığıyla paylaş


Kılavuz: Harici bir konumdan veya paketlenmemiş şekilde Windows Uygulama SDK'sını kullanan bir uygulamada bootstrapper API'sini kullanma.

Bu makalede, Windows Uygulama SDK'sı çalışma zamanını açıkça yükleyebilmesi ve Windows Uygulama SDK'sı API'lerini çağırması için önyükleyici API'sini kullanmak için MSIX kullanılarak yüklenmemiş bir uygulamanın nasıl yapılandırıldığı (dış konumla paketlenmiş veya paketlenmemiş) gösterilmektedir. MSIX aracılığıyla yüklenmeyen uygulamalar dış konumla paketlenmiş uygulamalar ve paketlenmemiş uygulamalar içerir.

Önemli

Windows Uygulama SDK'sı 1.0'dan itibaren, paketlenmiş bir uygulamayı dış konumdan veya paketlenmemiş uygulamadan yüklemenin varsayılan yaklaşımı, proje özelliği aracılığıyla <WindowsPackageType> kullanmaktır (ayrıca ek yapılandırma değişiklikleri yaparak). WinUI 3 projesi bağlamında otomatik başlatmayla ilgili adımlar için bkz. İlk WinUI 3 projenizi oluşturma. Alternatif olarak, WinUI 3 olmayan mevcut bir proje varsa bkz. Windows Uygulama SDK'sını var olan bir projede kullanma.

Gelişmiş gereksinimleriniz varsa (özel hata işleme veya Windows Uygulama SDK'sının belirli bir sürümünü yüklemek gibi), bunun yerine önyükleyici API'sini açıkça çağırabilirsiniz. Ve bu konu başlığında da bu yaklaşım gösterilmektedir. Ayrıca, daha fazla bilgi için bkz. Dış konumla paketlenmiş veya paketlenmemiş uygulamalar için Windows Uygulama SDK'sı çalışma zamanını kullanma.

Bu konu başlığında, temel bir Konsol uygulaması projesinden önyükleyici API'sinin açıkça çağrılması gösterilmektedir; ancak adımlar, Windows Uygulama SDK'sını kullanan paketlenmemiş masaüstü uygulamaları için geçerlidir.

Bu öğreticiyi tamamlamadan önce, uygulamanızın Windows Uygulama SDK'sını kullanırken aldığı Framework paket bağımlılığı hakkında ve dış konumla paketlenmiş veya paketlenmemiş bir uygulamada çalışmak için gereken ek bileşenler hakkında daha fazla bilgi edinmek için Çalışma Zamanı mimarisini gözden geçirmenizi öneririz.

Önkoşullar

  1. Windows Uygulama SDK'sı için yükleme araçları.
  2. Dış konumla paketlenmiş ve paketlenmemiş uygulamalarla ilgili tüm bağımlılıkların yüklendiğinden emin olun (dış konumla paketlenmiş veya paketlenmemiş çerçeveye bağımlı uygulamalar için Windows Uygulama SDK'sı dağıtım kılavuzuna bakın ). Bunun kolay bir yolu, Windows Uygulama SDK'sı çalışma zamanı yükleyicisini çalıştırmaktır.

Yönergeler

C# veya C++ projesi kullanarak bu öğreticiyi izleyebilirsiniz.

Uyarı

Dinamik bağımlılıklar ve önyükleyici API'leri yükseltilmiş bir işlem tarafından çağrıldığında başarısız olur. Sonuç olarak, Visual Studio yükseltilmiş olarak başlatılmamalıdır. Daha fazla bilgi için (Dinamik Bağımlılıklar yükseltmeyi desteklemiyor #567) bkz.

Dış konumla paketlenmiş veya paketten çıkarılmış bir C# WinUI 3 projesi yapılandırmak için bu yönergeleri izleyin.

  1. Visual Studio'da yeni bir C# Konsol Uygulaması projesi oluşturun. Projeyi "DynamicDependenciesTest" olarak adlandırın. Projeyi oluşturduktan sonra elinizde bir "Hello, World!" C# konsol uygulaması olmalı.

  2. Ardından projenizi yapılandırın.

    1. Çözüm Gezgini 'de projenize sağ tıklayın ve "Proje Dosyasını Düzenle " seçeneğini seçin.
    2. TargetFramework öğesinin değerini Hedef Çerçeve Takma Adıyladeğiştirin. Örneğin, uygulamanız Windows 10, sürüm 2004'i hedeflediyse aşağıdakileri kullanın.
    <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
    
    1. Proje dosyasını kaydedin ve kapatın.
  3. Çözümünüzün platformunu x64olarak değiştirin. .NET projesindeki varsayılan değer AnyCPUancak WinUI 3 bu platformu desteklemez.

    1. Build>Configuration Manageröğesini seçin.
    2. Etkin çözüm platformu altındaki açılan listeyi seçin ve Yeni 'a tıklayarak Yeni Çözüm Platformu iletişim kutusunu açın.
    3. Türü altındaki açılır listedeki yeni platformuseçin ve x64öğesini seçin.
    4. Tamam’a tıklayarak Yeni Çözüm Platformu iletişim kutusunu kapatın.
    5. Configuration Manageriçinde Kapat'atıklayın.
  4. Projenize Windows Uygulama SDK'sı NuGet paketini yükleyin.

    1. Çözüm Gezgini'nde, Bağımlılıklar düğümüne sağ tıklayın ve "Nuget Paketlerini Yönet"seçeneğini seçin.
    2. NuGet Paket Yöneticisi penceresinde Gözat sekmesini seçin ve Microsoft.WindowsAppSDK paketini yükleyin.
  5. Artık Windows Uygulama SDK'sı çerçeve paketine dinamik olarak bağımlılık almak için önyükleyici API'sini kullanmaya hazırsınız (bkz. Dış konumla paketlenmiş veya paketlenmemişpaketlenmiş uygulamalar için Windows Uygulama SDK'sı çalışma zamanını kullanma). Bu, uygulamanızda Windows Uygulama SDK'sı API'lerini kullanmanıza olanak tanır.

    Program.cs kod dosyasını açın ve bootstrap.Initialize yöntemini çağırarak önyükleyiciyi başlatmak için varsayılan kodu aşağıdaki kodla değiştirin. Bu kod, önyükleyici başlatılırken uygulamanın hangi Windows Uygulama SDK'sı sürümüne bağımlı olduğunu tanımlar.

    Önemli

    Aşağıdaki kodu kendi yapılandırmanıza uyacak şekilde düzenlemeniz gerekir. Yüklediğiniz Windows Uygulama SDK'sının sürümlerinden birini belirtebilmeniz için Bootstrap.Initialize yönteminin parametrelerinin açıklamalarına bakın.

    using System;
    using Microsoft.Windows.ApplicationModel.DynamicDependency;
    
    namespace DynamicDependenciesTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                Bootstrap.Initialize(0x00010002);
                Console.WriteLine("Hello, World!");
    
                // Release the DDLM and clean up.
                Bootstrap.Shutdown();
            }
        }
    }
    

    Önyükleyici API'si kökünde, uygulamanızda Windows Uygulama SDK'sı API'lerini kullanmanızı sağlayan yerel bir C/C++ API'dir. Ancak Windows Uygulama SDK'sı 1.0 veya üzerini kullanan bir .NET uygulamasında önyükleyici API'sinin .NET sarmalayıcısını kullanabilirsiniz. Bu sarmalayıcı, bir .NET uygulamasında önyükleyici API'sini çağırmak için yerel C/C++ işlevlerini doğrudan çağırmaktan daha kolay bir yol sağlar. Önceki kod örneği, önyükleyici API'sinin .NET sarmalayıcısında Bootstrap sınıfının statik Initialize ve Shutdown yöntemlerini çağırır.

  6. Windows Uygulama SDK'sı çalışma zamanı bileşenlerinin düzgün yüklendiğini göstermek için, windows uygulama SDK'sında ResourceManager sınıfını kullanarak bir dize kaynağı yükleyen bazı kodlar ekleyin.

    1. Projenize yeni bir Kaynak Dosyası (.resw) ekleyin (varsayılan adı bırakın).

    2. Kaynak dosyası düzenleyicide açıkken aşağıdaki özelliklere sahip yeni bir dize kaynağı oluşturun.

      • Ad: İleti
      • Değer: Merhaba, kaynaklar!
    3. Kaynaklar dosyasını kaydedin.

    4. Program.cs kod dosyasını açın ve satırını aşağıdaki kodla değiştirinConsole.WriteLine("Hello, World!");.

    // Create a resource manager using the resource index generated during build.
       var manager = new Microsoft.Windows.ApplicationModel.Resources.ResourceManager("DynamicDependenciesTest.pri");
    
    // Look up a string in the .resw file using its name.
    Console.WriteLine(manager.MainResourceMap.GetValue("Resources/Message").ValueAsString);
    
    1. Hata Ayıklamadan Başlat (veya Hata Ayıklamayı Başlat) tıklayın, uygulamanızı derlemek ve çalıştırmak için. Dizgi Hello, resources!'ın başarıyla görüntülendiğini görmelisiniz.

Projeniz WPF ise

Windows Presentation Foundation (WPF) uygulaması için bkz. WPF uygulamasında Windows Uygulama SDK'sını kullanma.