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
Windows App Development CLI saat ini dalam pratinjau umum. Fitur dan perintah dapat berubah sebelum rilis akhir.
Halaman ini mendokumen semua perintah yang tersedia untuk winapp CLI.
Opsi global
Semua perintah mendukung opsi global ini:
| Option | Deskripsi |
|---|---|
--verbose, -v |
Aktifkan output verbose untuk pencatatan terperinci |
--quiet, -q |
Menyembunyikan pesan kemajuan |
--help, -h |
Perlihatkan bantuan perintah |
Direktori cache global
WinApp membuat direktori untuk menyimpan file yang dapat dibagikan di antara beberapa proyek. Secara default, ini adalah $UserProfile/.winapp.
Untuk menggunakan lokasi yang berbeda, atur WINAPP_CLI_CACHE_DIRECTORY variabel lingkungan:
$env:WINAPP_CLI_CACHE_DIRECTORY = "d:\temp\.winapp"
Perintah penyiapan
inisialisasi
Menginisialisasi direktori dengan Windows SDK, Windows App SDK, dan aset yang diperlukan untuk pengembangan Windows modern.
winapp init [base-directory] [options]
Argumen:
| Argumen | Deskripsi |
|---|---|
base-directory |
Direktori dasar/akar untuk aplikasi/ruang kerja (default: direktori saat ini) |
Opsi:
| Option | Deskripsi |
|---|---|
--config-dir <path> |
Direktori untuk membaca/menyimpan konfigurasi (default: direktori saat ini) |
--setup-sdks |
Mode penginstalan SDK: stable (default), preview, experimental, atau none |
--ignore-config, --no-config |
Jangan gunakan file konfigurasi untuk manajemen versi |
--no-gitignore |
Jangan perbarui file .gitignore |
--use-defaults, --no-prompt |
Jangan tampilkan prompt, dan gunakan pengaturan default untuk semua isian |
--config-only |
Hanya tangani operasi file konfigurasi, lewati penginstalan paket |
Apa fungsinya:
- Membuat file konfigurasi
winapp.yaml - Mengunduh paket Windows SDK dan Windows App SDK
- Menghasilkan header dan biner C++/WinRT
- Membuat AppxManifest.xml
- Menyiapkan alat build dan mengaktifkan mode pengembang
- Memperbarui .gitignore untuk mengecualikan file yang dihasilkan
Deteksi proyek .NET otomatis:
Ketika file .csproj ditemukan di direktori target, init menggunakan alur khusus .NET yang disederhanakan:
- Memvalidasi dan memperbarui
TargetFrameworkke TFM yang kompatibel dengan Windows (misalnya,net10.0-windows10.0.26100.0) - Menambahkan
Microsoft.WindowsAppSDKdanMicrosoft.Windows.SDK.BuildToolssebagai entri NuGetPackageReferencelangsung di.csproj - Menghasilkan
appxmanifest.xml, aset, dan sertifikat pengembangan -
Tidak membuat
winapp.yamlatau mengunduh proyeksi C++ (gunakandotnet restoreuntuk paket NuGet)
Contoh:
# Initialize current directory
winapp init
# Initialize with experimental packages
winapp init --setup-sdks experimental
# Initialize specific directory without prompts
winapp init ./my-project --use-defaults
# Initialize a .NET project (auto-detected from .csproj)
cd my-dotnet-app
winapp init
Tip
Jika Anda menjalankan init dengan --setup-sdks none dan nantinya memerlukan SDK, jalankan kembali winapp init --use-defaults --setup-sdks stable. Ini mempertahankan file yang ada (manifes, dll.).
memulihkan
Pulihkan paket dan hasilkan ulang berkas berdasarkan konfigurasi yang ada winapp.yaml.
winapp restore [options]
Opsi:
| Option | Deskripsi |
|---|---|
--config-dir <path> |
Direktori yang berisi winapp.yaml (default: direktori saat ini) |
Apa fungsinya:
- Membaca konfigurasi
winapp.yamlyang ada - Mengunduh/memperbarui paket SDK ke versi yang ditentukan
- Meregenerasi header dan biner C++/WinRT
Nota
Untuk proyek .NET yang diinisialisasi dengan winapp init, tidak ada winapp.yaml. Gunakan dotnet restore untuk memulihkan paket NuGet sebagai gantinya.
Contoh:
# Restore from winapp.yaml in current directory
winapp restore
perbarui
Perbarui paket ke versi terbarunya dan perbarui file konfigurasi.
winapp update [options]
Opsi:
| Option | Deskripsi |
|---|---|
--config-dir <path> |
Direktori yang berisi winapp.yaml (default: direktori saat ini) |
--setup-sdks |
Mode penginstalan SDK: stable (default), preview, experimental, atau none |
Apa fungsinya:
- Membaca konfigurasi
winapp.yamlyang sudah ada - Memperbarui semua paket ke versi terbaru yang tersedia
- Memperbarui file
winapp.yamldengan nomor versi baru - Meregenerasi header dan biner C++/WinRT
Contoh:
# Update packages to latest versions
winapp update
# Update including experimental packages
winapp update --setup-sdks experimental
Perintah pengemasan
paket
Buat paket MSIX dari direktori aplikasi yang disiapkan. Mengharuskan file appxmanifest.xml ada di direktori target, di direktori saat ini, atau diteruskan dengan opsi --manifest.
winapp pack <input-folder> [options]
Argumen:
| Argumen | Deskripsi |
|---|---|
input-folder |
Direktori yang berisi berkas aplikasi untuk dikemas |
Opsi:
| Option | Deskripsi |
|---|---|
--output <filename> |
Nama berkas keluaran MSIX (default: <name>.msix) |
--name <name> |
Nama paket (default: dari manifest) |
--manifest <path> |
Jalur ke AppxManifest.xml (default: deteksi otomatis) |
--cert <path> |
Jalur ke sertifikat penandatanganan (memungkinkan penandatanganan otomatis) |
--cert-password <password> |
Kata sandi sertifikat (default: "kata sandi") |
--generate-cert |
Membuat sertifikat pengembangan baru |
--install-cert |
Menginstal sertifikat ke komputer |
--publisher <name> |
nama Publisher untuk pembuatan sertifikat |
--self-contained |
Bundel Windows App SDK runtime |
--skip-pri |
Lewati pembuatan file PRI |
--executable <path> |
Jalur ke executable relatif terhadap folder input. Digunakan untuk menyelesaikan $targetnametoken$ placeholder dalam berkas manifes. |
Apa fungsinya:
- Memvalidasi dan memproses file AppxManifest.xml
- Menyelesaikan token
$placeholder$dalam manifes (lihat Placeholder manifes) - Memastikan dependensi kerangka kerja yang tepat
- Memperbarui manifes berdampingan dengan pendaftaran
- Menangani penyebaran Windows App SDK mandiri
- Menandatangani paket jika sertifikat disediakan
Contoh:
# Package directory with auto-detected manifest
winapp pack ./dist
# Package with custom output name and certificate
winapp pack ./dist --output MyApp.msix --cert ./cert.pfx
# Package with generated and installed certificate and self-contained runtime
winapp pack ./dist --generate-cert --install-cert --self-contained
# Package with explicit executable
winapp pack ./dist --executable MyApp.exe
create-debug-identity
Buat identitas aplikasi untuk penelusuran kesalahan tanpa kemasan MSIX penuh menggunakan lokasi eksternal/kemasan jarang.
winapp create-debug-identity [entrypoint] [options]
Argumen:
| Argumen | Deskripsi |
|---|---|
entrypoint |
Jalur ke executable (.exe) atau skrip yang membutuhkan identitas |
Opsi:
| Option | Deskripsi |
|---|---|
--manifest <path> |
Jalur ke AppxManifest.xml (default: ./appxmanifest.xml) |
--no-install |
Jangan instal paket setelah pembuatan |
--keep-identity |
Pertahankan identitas manifes as-is, tanpa menambahkan .debug ke nama paket dan ID aplikasi |
Apa fungsinya:
- Memodifikasi manifes berdampingan yang dapat dieksekusi
- Mendaftarkan paket terbatas untuk identifikasi
- Mengaktifkan debugging API yang memerlukan identitas
Contoh:
# Add identity to executable using local manifest
winapp create-debug-identity ./bin/MyApp.exe
# Add identity with custom manifest location
winapp create-debug-identity ./dist/app.exe --manifest ./custom-manifest.xml
Perintah manifes
pembuatan manifest
Buat AppxManifest.xml dari templat.
winapp manifest generate [directory] [options]
Argumen:
| Argumen | Deskripsi |
|---|---|
directory |
Direktori untuk menghasilkan manifes di (default: direktori saat ini) |
Opsi:
| Option | Deskripsi |
|---|---|
--package-name <name> |
Nama paket (default: nama folder) |
--publisher-name <name> |
Publisher CN (default: CN=<current user>) |
--version <version> |
Versi (default: "1.0.0.0") |
--description <text> |
Deskripsi (default: "Aplikasi Saya") |
--entrypoint <path> |
Titik masuk yang dapat dieksekusi atau skrip |
--template <type> |
Jenis templat: packaged (default) atau sparse |
--logo-path <path> |
Jalur ke file gambar logo |
--if-exists <Error\|Overwrite\|Skip> |
Perilaku jika file sudah ada (default: Kesalahan) |
Template:
-
packaged- Manifes aplikasi terbungkus standar -
sparse- Manifes aplikasi menggunakan kemasan lokasi sparse/eksternal
Tempat penampung manifes
Manifes yang dihasilkan menggunakan token $placeholder$ (dilingkupi tanda dolar) yang diresolusikan secara otomatis pada waktu pengemasan:
| Placeholder | Diselesaikan menjadi | Example |
|---|---|---|
$targetnametoken$ |
Nama yang dapat dieksekusi tanpa ekstensi |
Executable="$targetnametoken$.exe" menjadi Executable="MyApp.exe" |
$targetentrypoint$ |
Windows.FullTrustApplication |
Selalu diselesaikan secara otomatis |
Bagaimana placeholder diidentifikasi:
-
winapp packmemecahkan masalah$targetnametoken$dengan menggunakan pilihan--executableatau dengan mendeteksi secara otomatis satu.exedi folder input. -
winapp create-debug-identitymenentukan$targetnametoken$dari argumen titik masuk saat disediakan. -
winapp manifest generate --executablemengekstrak metadata dari executable tetapi menyimpan$targetnametoken$.exedalam manifes untuk resolusi nanti.
Tip
Menyimpan $targetnametoken$ dalam manifes check-in Anda menghindari pencantuman nama eksekutabel secara statis dan berfungsi baik dengan build winapp pack maupun Visual Studio.
Contoh:
# Generate standard manifest interactively
winapp manifest generate
# Generate with all options specified
winapp manifest generate ./src --package-name MyApp --publisher-name "CN=My Company" --if-exists overwrite
aset pembaruan manifes
Hasilkan semua aset gambar MSIX yang diperlukan dari satu gambar sumber.
winapp manifest update-assets <image-path> [options]
Argumen:
| Argumen | Deskripsi |
|---|---|
image-path |
Jalur ke file gambar sumber (PNG, JPG, GIF, dll.) |
Opsi:
| Option | Deskripsi |
|---|---|
--manifest <path> |
Jalur ke file AppxManifest.xml (default: cari direktori saat ini) |
Mengambil satu gambar sumber dan secara otomatis menghasilkan semua 12 aset gambar MSIX yang diperlukan pada dimensi yang benar. Aset disimpan ke Assets direktori berdasarkan lokasi manifes.
Contoh:
# Generate assets with auto-detected manifest
winapp manifest update-assets mylogo.png
# Specify manifest location explicitly
winapp manifest update-assets mylogo.png --manifest ./dist/appxmanifest.xml
Perintah sertifikat dan penandatanganan
menghasilkan sertifikat
Hasilkan sertifikat pengembangan untuk penandatanganan paket.
winapp cert generate [options]
Opsi:
| Option | Deskripsi |
|---|---|
--manifest <appxmanifest.xml> |
Ekstrak informasi publisher dari appxmanifest.xml |
--publisher <name> |
nama Publisher untuk sertifikat |
--output <path> |
Jalur output file sertifikat |
--password <password> |
Kata sandi sertifikat (default: "kata sandi") |
--valid-days <days> |
Jumlah hari sertifikat valid (default: 365) |
--install |
Menginstal sertifikat ke penyimpanan komputer lokal setelah pembuatan |
--if-exists <Error\|Overwrite\|Skip> |
Perilaku jika file sertifikat sudah ada (default: Kesalahan) |
instalasi sertifikat
Instal sertifikat ke penyimpanan sertifikat komputer.
winapp cert install <cert-path>
Argumen:
| Argumen | Deskripsi |
|---|---|
cert-path |
Jalur ke file sertifikat untuk diinstal |
Contoh:
# Generate certificate for specific publisher
winapp cert generate --publisher "CN=My Company" --output ./mycert.pfx
# Install certificate to machine
winapp cert install ./mycert.pfx
tanda
Tanda tangani paket MSIX dan executable dengan sertifikat.
winapp sign <file-path> [options]
Argumen:
| Argumen | Deskripsi |
|---|---|
file-path |
Lokasi jalur ke paket MSIX atau file yang dapat dieksekusi untuk ditandatangani secara digital |
Opsi:
| Option | Deskripsi |
|---|---|
--cert <path> |
Jalur ke sertifikat penandatanganan |
--cert-password <password> |
Kata sandi sertifikat (default: "kata sandi") |
Contoh:
# Sign MSIX package
winapp sign MyApp.msix --cert ./mycert.pfx
# Sign executable
winapp sign ./bin/MyApp.exe --cert ./mycert.pfx --cert-password mypassword
Perintah utilitas
perangkat
Akses alat Windows SDK langsung. Menggunakan alat yang tersedia di Microsoft.Windows.SDK.BuildTools.
winapp tool <tool-name> [tool-arguments]
Alat yang tersedia:
-
makeappx- Membuat dan memanipulasi paket aplikasi -
signtool- Menandatangani file dan memverifikasi tanda tangan -
mt- Alat manifes untuk rakitan berdampingan - Dan alat Windows SDK lainnya dari Microsoft.Windows.SDK.BuildTools
Contoh:
# Use signtool to verify signature
winapp tool signtool verify /pa MyApp.msix
simpan
Jalankan perintah Microsoft Store Developer CLI. Perintah ini mengunduh CLI Pengembang Microsoft Store jika belum diunduh. Pelajari selengkapnya di Microsoft Store Developer CLI.
winapp store [args...]
Argumen:
| Argumen | Deskripsi |
|---|---|
args... |
Argumen untuk diteruskan langsung ke msstore CLI |
Contoh:
# List all apps in your Microsoft Partner Center account
winapp store app list
# Publish a package to the Microsoft Store
winapp store publish ./myapp.msix --appId <your-app-id>
Dapatkan Jalur Aplikasi Windows
Dapatkan jalur untuk menginstal komponen Windows SDK.
winapp get-winapp-path [options]
Mengembalikan jalur ke .winapp direktori ruang kerja, direktori penginstalan paket, dan lokasi header yang dihasilkan.
perintah Node.js/Electron
Perintah ini hanya tersedia dalam paket NPM.
node membuat-addon
Hasilkan templat addon C++ atau C# asli dengan Windows SDK dan integrasi Windows App SDK.
npx winapp node create-addon [options]
Opsi:
| Option | Deskripsi |
|---|---|
--name <name> |
Nama Tambahan (default: "nativeWindowsAddon") |
--template |
Pilih jenis addon: cs atau cpp (default: cpp) |
--verbose |
Mengaktifkan output verbose |
Apa fungsinya:
- Membuat direktori addon dengan file templat
- Menghasilkan file binding.gyp dan addon dengan contoh Windows SDK
- Menginstal dependensi npm yang diperlukan
- Menambahkan skrip build ke package.json
Contoh:
# Generate addon with default name
npx winapp node create-addon
# Generate custom named C# addon
npx winapp node create-addon --name myWindowsAddon --template cs
node add-electron-debug-identity
Tambahkan identitas aplikasi dalam proses pengembangan Electron dengan menggunakan pengemasan parsial. Memerlukan appxmanifest.xml (buat dengan winapp init atau winapp manifest generate).
Penting
Ada masalah yang diketahui dengan pengemasan yang jarang digunakan pada aplikasi Electron, yang menyebabkan aplikasi mengalami crash pada saat mulai atau tidak dapat merender konten web. Masalah ini telah diperbaiki di Windows tetapi belum disebarluaskan ke semua perangkat. Anda dapat menonaktifkan sandboxing di aplikasi Electron dengan --no-sandbox flag sebagai solusi sementara. Masalah ini tidak memengaruhi kemasan MSIX penuh.
Untuk menghapus identitas debug Electron, gunakan winapp node clear-electron-debug-identity.
npx winapp node add-electron-debug-identity [options]
Opsi:
| Option | Deskripsi |
|---|---|
--manifest <path> |
Jalur ke appxmanifest.xml kustom (default: appxmanifest.xml di direktori saat ini) |
--no-install |
Jangan memasang atau memodifikasi dependensi; hanya mengonfigurasi identitas debug Electron. |
--keep-identity |
Pertahankan identitas manifes seperti adanya, tanpa menambahkan .debug |
--verbose |
Mengaktifkan output verbose |
Contoh:
# Add identity to Electron development process
npx winapp node add-electron-debug-identity
# Use a custom manifest file
npx winapp node add-electron-debug-identity --manifest ./custom/appxmanifest.xml
node clear-electron-debug-identity
Hapus identitas paket dari proses debug Electron dengan memulihkan electron.exe asli dari cadangan.
npx winapp node clear-electron-debug-identity [options]
Opsi:
| Option | Deskripsi |
|---|---|
--verbose |
Mengaktifkan output verbose |
Contoh:
# Remove identity from Electron development process
npx winapp node clear-electron-debug-identity
Topik terkait
Windows developer