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.
Nota
Panduan ini berfungsi untuk sebagian besar jenis .NET project. Langkah-langkah telah diuji dengan proyek berbasis konsol dan UI seperti WPF.
Panduan ini menunjukkan cara menggunakan CLI winapp dengan aplikasi .NET untuk men-debug dengan identitas paket dan mengemas aplikasi Anda sebagai MSIX.
Identitas paket adalah konsep inti dalam model Windows app. Ini memungkinkan aplikasi Anda untuk mengakses API Windows tertentu (seperti Pemberitahuan, Keamanan, API AI, dll.), merasakan pengalaman pemasangan/penghapusan instalasi yang lebih bersih, dan banyak lagi.
Prasyarat
.NET SDK: Instal SDK .NET:
winget install Microsoft.DotNet.SDK.10 --source wingetwinapp CLI: Instal
winappalat melalui winget:winget install Microsoft.winappcli --source winget
1. Buat aplikasi .NET baru
Mulailah dengan membuat aplikasi konsol .NET sederhana:
dotnet new console -n dotnet-app
cd dotnet-app
Jalankan untuk memastikan semuanya berfungsi:
dotnet run
2. Perbarui kode untuk memeriksa identitas
Pertama, perbarui file project Anda untuk menargetkan versi Windows SDK tertentu. Buka dotnet-app.csproj dan ubah TargetFramework:
<TargetFramework>net10.0-windows10.0.26100.0</TargetFramework>
Sekarang ganti isi dari Program.cs:
using Windows.ApplicationModel;
try
{
var package = Package.Current;
var familyName = package.Id.FamilyName;
Console.WriteLine($"Package Family Name: {familyName}");
}
catch (InvalidOperationException)
{
Console.WriteLine("Not packaged");
}
3. Jalankan tanpa identitas
dotnet run
Anda akan melihat "Tidak dibungkus".
4. Inisialisasi project dengan winapp CLI
Perintah winapp init akan otomatis mendeteksi file .csproj dan menjalankan penyiapan .NET tertentu.
winapp init
Ketika diminta:
- Nama paket: Tekan Enter untuk menerima default
- Nama penerbit: Tekan Enter untuk menerima pengaturan standar atau masukkan nama Anda
- Deskripsi: Tekan Enter untuk menerima default atau memasukkan deskripsi
- Versi: Tekan Enter untuk menerima 1.0.0.0
- Titik masuk: Tekan Enter untuk menerima default (dotnet-app.exe)
- penyiapan Windows App SDK: Pilih Stabil, Pratinjau, atau Eksperimental
Perintah ini:
- Di
.csproj,TargetFrameworkdiperbarui ke TFM Windows yang didukung (jika diperlukan) - Menambahkan referensi paket NuGet
Microsoft.WindowsAppSDKdanMicrosoft.Windows.SDK.BuildTools - Membuat folder
appxmanifest.xmldanAssetsuntuk identitas aplikasi Anda
Nota
Tidak seperti proyek native/C++, aliran .NET tidak membuat winapp.yaml file. Paket NuGet dikelola langsung lewat .csproj Anda. Gunakan dotnet restore untuk memulihkan paket setelah kloning.
5. Debug menggunakan identitas
Buat executable:
dotnet build -c DebugTerapkan identitas debug:
winapp create-debug-identity .\bin\Debug\net10.0-windows10.0.26100.0\dotnet-app.exeJalankan executable (jangan gunakan
dotnet runkarena mungkin dibangun kembali):.\bin\Debug\net10.0-windows10.0.26100.0\dotnet-app.exe
Anda harus melihat:
Package Family Name: dotnet-app_12345abcde
Otomatisasi identitas debug (opsional)
Tambahkan target ini ke file Anda .csproj :
<Target Name="ApplyDebugIdentity" AfterTargets="Build" Condition="'$(Configuration)' == 'Debug'">
<Exec Command="winapp create-debug-identity "$(TargetDir)$(TargetName).exe""
WorkingDirectory="$(ProjectDir)"
IgnoreExitCode="false" />
</Target>
6. Menggunakan Windows App SDK
Jika Anda menjalankan winapp init, Microsoft.WindowsAppSDK sudah ditambahkan sebagai referensi paket NuGet. Perbarui Program.cs untuk menggunakan WINDOWS APP Runtime API:
using Windows.ApplicationModel;
class Program
{
static void Main(string[] args)
{
try
{
var package = Package.Current;
var familyName = package.Id.FamilyName;
Console.WriteLine($"Package Family Name: {familyName}");
var runtimeVersion = Microsoft.Windows.ApplicationModel.WindowsAppRuntime.RuntimeInfo.AsString;
Console.WriteLine($"Windows App Runtime Version: {runtimeVersion}");
}
catch (InvalidOperationException)
{
Console.WriteLine("Not packaged");
}
}
}
7. Paket dengan MSIX
Bangun untuk rilis:
dotnet build -c ReleaseBuat sertifikat pengembangan:
winapp cert generate --if-exists skipPaket dan tanda tangan:
winapp pack .\bin\Release\net10.0-windows10.0.26100.0 --manifest .\appxmanifest.xml --cert .\devcert.pfxInstal sertifikat (jalankan sebagai administrator):
winapp cert install .\devcert.pfxInstal dengan mengeklik dua kali file yang dihasilkan
.msix.
Tip
- Microsoft Store menandatangani MSIX untuk Anda, tidak perlu menandatangani sebelum pengiriman.
- Anda mungkin memerlukan paket MSIX terpisah untuk setiap arsitektur:
dotnet build -c Release -r win-x64ataudotnet build -c Release -r win-arm64.
Mengotomatiskan kemasan MSIX (opsional)
Tambahkan target ini ke .csproj:
<Target Name="PackageMsix" AfterTargets="Build" Condition="'$(Configuration)' == 'Release'">
<Exec Command="winapp pack "$(TargetDir.TrimEnd('\'))" --cert "$(ProjectDir)devcert.pfx""
WorkingDirectory="$(ProjectDir)"
IgnoreExitCode="false" />
</Target>
Topik terkait
Windows developer