Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Untuk proses apa pun yang berjalan di AppContainer, jika Anda menyebabkan DeploymentManager.Initialize dipanggil, aplikasi Anda perlu mendeklarasikan packageManagementkemampuan terbatas dalam manifes paket Anda. Untuk detail selengkapnya, lihat Penginisialisasi otomatis Deployment Manager.
Topik AppContainer untuk aplikasi warisan mencakup semua info latar belakang yang diperlukan tentang apa lingkungan AppContainer dan manfaatnya; topik tersebut juga berisi contoh kode C# dan C++ untuk menguji apakah proses berjalan di dalam AppContainer atau tidak.
Topik yang Anda baca sekarang menunjukkan bagaimana Anda dapat mengambil aplikasi yang dikemas menggunakan MSIX, dan dengan mudah mengonfigurasinya untuk dijalankan di lingkungan AppContainer (dalam kontainer aplikasi ringan). Aplikasi Universal Windows Platform (UWP) secara otomatis adalah aplikasi AppContainer. Tetapi Anda juga dapat mengonfigurasi aplikasi desktop yang dipaketkan dengan MSIX untuk menjadi aplikasi AppContainer.
Proses aplikasi AppContainer dan proses turunannya berjalan di dalam kontainer aplikasi ringan di mana mereka hanya dapat mengakses sumber daya yang secara khusus diberikan kepada mereka. Dan mereka diisolasi menggunakan sistem file dan virtualisasi registri. Akibatnya, aplikasi yang diterapkan di AppContainer tidak dapat diretas untuk memungkinkan tindakan berbahaya di luar sumber daya yang ditetapkan terbatas.
Petunjuk / Saran
Aplikasi yang tidak dikemas juga dapat berjalan di AppContainer. Tetapi sangat mudah untuk menggunakan AppContainer jika Anda mengemas menggunakan MSIX. Jadi semua skenario yang dijelaskan dalam topik ini adalah tentang aplikasi kemasan.
Mengonfigurasi proyek WinUI 3 untuk AppContainer
Langkah-langkah dalam Membuat proyek baru untuk aplikasi desktop C# atau C++ WinUI 3 yang dipaketkan menunjukkan cara default dan direkomendasikan untuk membuat proyek WinUI 3 baru.
Secara default, file proyek Package.appxmanifest berisi konfigurasi untuk paket kepercayaan penuh (yaitu, tingkat integritas sedang). Bagian yang relevan terlihat seperti ini:
...
<Applications>
<Application ...
EntryPoint="$targetentrypoint$">
...
</Application>
</Applications>
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
...
Untuk mengonfigurasi paket sebagai berisi aplikasi AppContainer, Anda dapat mengedit atribut EntryPoint , dan menghapus deklarasi kemampuan terbatas (tetapi pertahankan elemen Kapabilitas ). Seperti ini:
...
<Applications>
<Application ...
EntryPoint="windows.partialTrustApplication">
...
</Application>
</Applications>
<Capabilities/>
...
Jika paket Anda diinstal pada Windows 10, versi 2004 (10.0; Bangun 19041) dan/atau yang lebih baru, lalu alih-alih mengatur EntryPoint, Anda dapat mengatur uap10:TrustLevel dan uap10:RuntimeBehavior (setelah mendeklarasikan awalan namespace XML, seperti yang ditunjukkan). Seperti ini:
<Package ...
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
...>
...
<Applications>
<Application ...
EntryPoint="$targetentrypoint$"
uap10:TrustLevel="appContainer"
uap10:RuntimeBehavior="packagedClassicApp">
...
</Application>
</Applications>
<Capabilities/>
...
Untuk informasi selengkapnya, lihat topik-topik ini:
- Elemen aplikasi
- uap10 diperkenalkan pada Windows 10 versi 2004 (10.0; Build 19041)
- Jenis aplikasi desktop
Mengonfigurasi solusi dua proyek WinUI 3 untuk AppContainer
Bagian sebelumnya menjelaskan proses untuk MSIX proyek tunggal, yang kami rekomendasikan dan menjadi default untuk proyek WinUI 3 baru. Untuk informasi selengkapnya, lihat Mengemas aplikasi Anda menggunakan MSIX proyek tunggal.
Tetapi Anda mungkin memiliki proyek WinUI 3 yang berasal dari sebelum pengenalan fitur MSIX proyek tunggal. Dalam hal ini, Anda akan memiliki dua proyek dalam solusi Anda—proyek aplikasi Anda, serta Proyek Pengemasan Aplikasi Windows tambahan. Jika Anda dapat memigrasikan proyek Anda ke proyek MSIX tunggal, itu adalah pilihan ideal. Dan Anda akan dapat mengikuti panduan di bagian sebelumnya. Untuk informasi selengkapnya, lihat Mengemas aplikasi Anda menggunakan MSIX proyek tunggal.
Jika Anda tidak dapat memigrasikan proyek Anda ke MSIX proyek tunggal, bagian ini menjelaskan cara mengonfigurasi paket Anda sebagai berisi aplikasi AppContainer.
Windows Application Packaging Project menyiratkan pengaturan default yang mengambil alih konfigurasi di Package.appxmanifest. Proyek berperilaku seolah-olah ada properti TrustLevel dalam file proyek yang diatur ke nilai Penuh.
Untuk memperbaiki nilai properti implisit itu, perluas node Dependensi>Aplikasi pada proyek pengemasan, dan pilih node yang mewakili referensi ke proyek WinUI 3 Anda. Kemudian di jendela Properties Visual Studio/c0 (bukan properti proyek), untuk properti Trust Level pilih nilai Partial Trust.
File proyek untuk proyek pengemasan sekarang berisi properti eksplisit ini:
...
<ItemGroup>
<ProjectReference Include="...">
<TrustLevel>Partial</TrustLevel>
</ProjectReference>
</ItemGroup>
...
Dan sekarang Anda dapat menghapus <rescap:Capability Name="runFullTrust" /> dari file proyek Package.appxmanifest kemasan.
Mengonfigurasi Proyek Aplikasi Windows (aplikasi jenis C++ Win32 WndProc) dalam AppContainer
Bagian ini untuk Anda jika Anda memiliki project jenis C++ Win32 WndProc yang dibuat dengan templat Windows Application Project project. Langkah pertama, singkatnya, adalah menambahkan ke solusi Anda C++ Windows Application Packaging Project. Ada detail selengkapnya tentang langkah-langkah yang tepat di Siapkan aplikasi desktop Anda untuk kemasan MSIX dalam Visual Studio. Topik tersebut berlaku untuk aplikasi desktop yang ditulis dalam C++ atau C#.
Kemudian buka file proyek kemasan baru Anda, dan tambahkan properti TrustLevel ke properti ProjectReference yang ada seperti ini:
...
<ItemGroup>
<ProjectReference Include="...">
<TrustLevel>Partial</TrustLevel>
</ProjectReference>
</ItemGroup>
...
Saat membuat, Anda mungkin melihat kesalahan "kesalahan APPX1673: Manifes aplikasi tidak memiliki elemen yang diperlukan 'PhoneIdentity'". Jika itu terjadi, edit file proyek Package.appxmanifest seperti ini:
<Package ...
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
...>
...
<mp:PhoneIdentity
PhoneProductId="A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx."
PhonePublisherId="A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.">
</mp:PhoneIdentity>
...
Mengonfigurasi proyek WPF atau WinForms untuk AppContainer
Bagian ini adalah untuk Anda jika Anda memiliki:
- proyek aplikasi Windows Presentation Foundation (WPF) yang dibuat dengan templat proyek C# WPF Application. Itu akan memberi Anda proyek .NET; dan berbeda dari templat proyek bernama WPF App (.NET Framework). Atau
- proyek aplikasi Formulir Windows (WinForms) yang dibuat dengan templat proyek C# Formulir Windows App. Itu akan memberi Anda proyek .NET; dan berbeda dari templat proyek bernama Formulir Windows App (.NET Framework).
Langkah pertama, secara ringkas, adalah menambahkan ke solusi Anda sebuah proyek C# Windows Application Packaging Project. Ada detail selengkapnya tentang langkah-langkah yang tepat di Siapkan aplikasi desktop Anda untuk kemasan MSIX dalam Visual Studio.
Kemudian perluas simpul Dependencies>Applications dan pilih simpul yang mewakili referensi ke proyek jenis WPF atau WinForms Anda. Kemudian di jendela Properties Visual Studio/c0 (bukan properti proyek), untuk properti Trust Level pilih nilai Partial Trust.
Topik terkait
- Gambaran umum kontainerisasi MSIX
- AppContainer untuk aplikasi warisan
- Membuat proyek baru untuk aplikasi desktop C# atau C++ WinUI 3 yang dipaketkan
- Elemen aplikasi
- uap10 diperkenalkan pada Windows 10 versi 2004 (10.0; Build 19041)
- Jenis aplikasi desktop
- Paketkan aplikasi Anda menggunakan MSIX satu proyek
- Windows Presentation Foundation (WPF)
- Formulir Windows (WinForms)
- Siapkan aplikasi desktop Anda untuk kemasan MSIX dalam Visual Studio