Tutorial: Menggunakan API bootstrapper dalam aplikasi yang dikemas dengan lokasi eksternal atau tidak dikemas yang menggunakan SDK Aplikasi Windows

Artikel ini menunjukkan cara mengonfigurasi aplikasi yang tidak diinstal dengan menggunakan MSIX (yaitu, dikemas dengan lokasi eksternal atau tidak dikemas) untuk menggunakan API bootstrapper sehingga secara eksplisit memuat runtime SDK Aplikasi Windows, dan memanggil API SDK Aplikasi Windows. Aplikasi yang tidak diinstal melalui MSIX mencakup aplikasi yang dikemas dengan lokasi eksternal, dan aplikasi yang tidak dikemas.

Penting

Mulai dari SDK Aplikasi Windows 1.0, pendekatan default untuk memuat SDK Aplikasi Windows dari yang dikemas dengan lokasi eksternal atau aplikasi yang tidak dikemas adalah menggunakan inisialisasi otomatis melalui <WindowsPackageType> properti proyek (serta membuat perubahan konfigurasi tambahan). Untuk langkah-langkah yang terlibat dalam inisialisasi otomatis dalam konteks proyek WinUI 3, lihat Membuat proyek WinUI 3 pertama Anda. Atau, jika memiliki proyek yang sudah ada yang bukan WinUI 3, lihat Menggunakan SDK Aplikasi Windows dalam proyek yang ada.

Jika Anda memiliki kebutuhan tingkat lanjut (seperti penanganan kesalahan kustom, atau untuk memuat versi SDK Aplikasi Windows tertentu), maka Anda dapat memanggil API bootstrapper secara eksplisit. Dan itulah pendekatan yang ditunjukkan topik ini. Selain itu, untuk informasi selengkapnya, lihat Menggunakan runtime SDK Aplikasi Windows untuk aplikasi yang dikemas dengan lokasi eksternal atau tidak dikemas.

Topik ini menunjukkan secara eksplisit memanggil API bootstrapper dari proyek aplikasi Konsol dasar; tetapi langkah-langkahnya berlaku untuk aplikasi desktop yang tidak dikemas yang menggunakan SDK Aplikasi Windows.

Sebelum menyelesaikan tutorial ini, kami sarankan Anda meninjau arsitektur Runtime untuk mempelajari selengkapnya tentang dependensi paket Framework yang diperlukan aplikasi Anda saat menggunakan SDK Aplikasi Windows, dan komponen tambahan yang diperlukan untuk bekerja dalam paket dengan lokasi eksternal atau aplikasi yang tidak dikemas.

Prasyarat

  1. Pasang alat untuk SDK Aplikasi Windows.
  2. Pastikan semua dependensi untuk dikemas dengan lokasi eksternal dan aplikasi yang tidak dikemas diinstal (lihat panduan penyebaran SDK Aplikasi Windows untuk aplikasi yang bergantung pada kerangka kerja yang dikemas dengan lokasi eksternal atau tidak dikemas). Cara mudah untuk melakukannya adalah dengan menjalankan alat penginstal runtime SDK Aplikasi Windows.

Petunjuk

Anda dapat mengikuti tutorial ini menggunakan proyek C# atau C++.

Catatan

Dependensi dinamis dan API bootstrapper gagal ketika dipanggil oleh proses yang ditingkatkan. Akibatnya, Visual Studio tidak boleh diluncurkan ditingkatkan. Lihat Dependensi Dinamis tidak mendukung elevasi #567 untuk detail selengkapnya.

Ikuti petunjuk ini untuk mengonfigurasi proyek C# WinUI 3 yang dikemas dengan lokasi eksternal, atau tidak dikemas.

  1. Di Visual Studio, buat proyek Aplikasi Konsol C# baru. Beri nama proyek DynamicDependenciesTest. Setelah Anda membuat proyek, Anda harus memiliki "Halo, Dunia!" Aplikasi konsol C#.

  2. Selanjutnya, konfigurasikan proyek Anda.

    1. Di Penjelajah Solusi, klik kanan proyek Anda dan pilih Edit File Proyek.
    2. Ganti nilai elemen TargetFramework dengan Moniker Kerangka Kerja Target. Misalnya, gunakan hal berikut jika aplikasi Anda menargetkan Windows 10 versi 2004.
    <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
    
    1. Simpan dan tutup file proyek.
  3. Ubah platform untuk solusi Anda menjadi x64. Nilai default dalam proyek .NET adalah AnyCPU, tetapi WinUI 3 tidak mendukung platform tersebut.

    1. Pilih Build>Configuration Manager.
    2. Pilih menu drop-down di bawah Platform solusi aktif dan klik Baru untuk membuka kotak dialog Platform Solusi Baru .
    3. Di menu drop-down di bawah Jenis atau pilih platform baru, pilih x64.
    4. Klik OK untuk menutup kotak dialog Platform Solusi Baru .
    5. Di Configuration Manager, klik Tutup.
  4. Instal paket SDK Aplikasi Windows NuGet di proyek Anda.

    1. Di Penjelajah Solusi, klik kanan simpul Dependensi dan pilih Kelola Paket Nuget.
    2. Di jendela Manajer Paket NuGet , pilih tab Telusuri , dan instal paket Microsoft.WindowsAppSDK .
  5. Anda sekarang siap untuk menggunakan API bootstrapper (lihat Menggunakan runtime SDK Aplikasi Windows untuk aplikasi yang dikemas dengan lokasi eksternal atau tidak dikemas) untuk secara dinamis mengambil dependensi pada paket kerangka kerja SDK Aplikasi Windows. Ini memungkinkan Anda menggunakan API SDK Aplikasi Windows di aplikasi Anda.

    Buka file kode Program.cs , dan ganti kode default dengan kode berikut untuk memanggil metode Bootstrap.Initialize untuk menginisialisasi bootstrapper. Kode ini mendefinisikan versi SDK Aplikasi Windows aplikasi yang bergantung pada saat menginisialisasi bootstrapper.

    Penting

    Anda harus mengedit kode di bawah ini agar sesuai dengan konfigurasi spesifik Anda. Lihat deskripsi parameter metode Bootstrap.Initialize sehingga Anda dapat menentukan salah satu versi SDK Aplikasi Windows yang telah Anda instal.

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

    Pada akarnya, API bootstrapper adalah API C/C++ asli yang memungkinkan Anda menggunakan API SDK Aplikasi Windows di aplikasi Anda. Tetapi dalam aplikasi .NET yang menggunakan SDK Aplikasi Windows 1.0 atau yang lebih baru, Anda dapat menggunakan pembungkus .NET untuk API bootstrapper. Pembungkus itu menyediakan cara yang lebih mudah untuk memanggil API bootstrapper di aplikasi .NET daripada memanggil fungsi C/C++ asli secara langsung. Contoh kode sebelumnya memanggil metode Inisialisasi dan Matikan statis dari kelas Bootstrap di pembungkus .NET untuk API bootstrapper.

  6. Untuk menunjukkan bahwa komponen runtime SDK Aplikasi Windows dimuat dengan benar, tambahkan beberapa kode yang menggunakan kelas ResourceManager di SDK Aplikasi Windows untuk memuat sumber daya string.

    1. Tambahkan File Sumber Daya baru (.resw) ke proyek Anda (biarkan nama default).

    2. Dengan file sumber daya terbuka di editor, buat sumber daya string baru dengan properti berikut.

      • Nama: Pesan
      • Nilai: Halo, sumber daya!
    3. Simpan file sumber daya.

    4. Buka file kode Program.cs , dan ganti Console.WriteLine("Hello, World!"); baris dengan kode berikut.

    // 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. Klik Mulai Tanpa Penelusuran Kesalahan (atau Mulai Penelusuran Kesalahan) untuk membuat dan menjalankan aplikasi Anda. Anda akan melihat string Hello, resources! berhasil ditampilkan.

Jika proyek Anda adalah WPF

Untuk aplikasi Windows Presentation Foundation (WPF), lihat Menggunakan SDK Aplikasi Windows di aplikasi WPF.