Windows Uygulama Geliştirme CLI referansı

Önemli

Windows App Geliştirme CLI'si şu anda public preview sürümündedir. Özellikler ve komutlar son sürümden önce değişebilir.

Bu sayfa , winapp CLI için tüm kullanılabilir komutları belgelemektedir.

Genel seçenekler

Tüm komutlar şu genel seçenekleri destekler:

Seçenek Açıklama
--verbose, -v Ayrıntılı çıktı için ayrıntılı günlük kaydını etkinleştirme
--quiet, -q İlerleme iletilerini gizleme
--help, -h Komut yardımlarını göster

Genel önbellek dizini

WinApp, birden çok proje arasında paylaşılabilen dosyaları önbelleğe almak için bir dizin oluşturur. Varsayılan olarak, bu şeklindedir $UserProfile/.winapp.

Farklı bir konum kullanmak için ortam değişkenini WINAPP_CLI_CACHE_DIRECTORY ayarlayın:

$env:WINAPP_CLI_CACHE_DIRECTORY = "d:\temp\.winapp"

Kurulum komutları

başlat

Windows SDK'sı, Windows App SDK ve modern Windows geliştirmesi için gerekli varlıklarla bir dizin başlatın.

winapp init [base-directory] [options]

Argümanlar:

Argument Açıklama
base-directory Uygulama/çalışma alanı için temel/kök dizin (varsayılan: geçerli dizin)

Seçenekler:

Seçenek Açıklama
--config-dir <path> Okuma/depolama yapılandırması dizini (varsayılan: geçerli dizin)
--setup-sdks SDK yükleme modu: stable (varsayılan), preview, experimentalveya none
--ignore-config, --no-config Sürüm yönetimi için yapılandırma dosyasını kullanma
--no-gitignore .gitignore dosyasını güncellemeyin
--use-defaults, --no-prompt İstem göstermeyin ve tüm istemler için varsayılanı kullanın.
--config-only Yalnızca yapılandırma dosyası işlemlerini işleyin, paket yüklemesini atlayın

Ne yapar:

  • Yapılandırma dosyası oluşturur winapp.yaml
  • Windows SDK'sı ve Windows App SDK paketlerini indirir
  • C++/WinRT üst bilgileri ve ikili dosyaları oluşturur
  • AppxManifest.xml oluşturur
  • Derleme araçlarını ayarlar ve geliştirici modunu etkinleştirir
  • Oluşturulan dosyaları dışlamak için .gitignore güncelleştirmeleri

Otomatik .NET proje tespiti:

Hedef dizinde bir .csproj dosyası bulunduğunda, init kolaylaştırılmış .NET özgü bir akış kullanır:

  • Windows uyumlu bir TFM'yi doğrular ve güncelleştirir TargetFramework (örneğin net10.0-windows10.0.26100.0)
  • Microsoft.WindowsAppSDK ve Microsoft.Windows.SDK.BuildTools girdilerini NuGet PackageReference girdisi olarak doğrudan .csproj'a ekler.
  • appxmanifest.xml, varlıkları ve geliştirme sertifikası oluşturur
  • C++ projeksiyonları oluşturmazwinapp.yaml veya indirmez (NuGet paketleri için kullanın dotnet restore )

Örnekler:

# 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

Tavsiye

Eğer init ve --setup-sdks none ile çalıştıysanız ve daha sonra SDK'lara ihtiyacınız varsa, winapp init --use-defaults --setup-sdks stable'yi yeniden çalıştırın. Bu, mevcut dosyaları (bildirim vb.) korur.

eski haline döndürmek

Paketleri geri yükleyin ve mevcut winapp.yaml yapılandırmaya göre dosyaları yeniden oluşturun.

winapp restore [options]

Seçenekler:

Seçenek Açıklama
--config-dir <path> winapp.yaml içeren dizin (varsayılan: geçerli dizin)

Ne yapar:

  • Mevcut winapp.yaml yapılandırmayı okur
  • SDK paketlerini belirtilen sürümlere indirir/güncelleştirir
  • C++/WinRT üst bilgilerini ve ikili dosyalarını yeniden oluşturur

Uyarı

winapp init ile başlatılan .NET projeleri için winapp.yaml yoktur. Bunun yerine NuGet paketlerini geri yüklemek için kullanın dotnet restore .

Örnekler:

# Restore from winapp.yaml in current directory
winapp restore

güncelleştirmek

Paketleri en son sürümlerine güncelleştirin ve yapılandırma dosyasını güncelleştirin.

winapp update [options]

Seçenekler:

Seçenek Açıklama
--config-dir <path> winapp.yaml içeren dizin (varsayılan: geçerli dizin)
--setup-sdks SDK yükleme modu: stable (varsayılan), preview, experimentalveya none

Ne yapar:

  • Mevcut winapp.yaml yapılandırmayı okur
  • Tüm paketleri en son kullanılabilir sürümlerine güncelleştirir
  • winapp.yaml Dosyayı yeni sürüm numaralarıyla güncelleştirir
  • C++/WinRT üst bilgilerini ve ikili dosyalarını yeniden oluşturur

Örnekler:

# Update packages to latest versions
winapp update

# Update including experimental packages
winapp update --setup-sdks experimental

Paketleme komutları

pack

Hazırlanan uygulama dizinlerinden MSIX paketleri oluşturun. appxmanifest.xml dosyasının hedef dizinde, geçerli dizinde bulunmasını veya seçeneğiyle geçirilmesini --manifest gerektirir.

winapp pack <input-folder> [options]

Argümanlar:

Argument Açıklama
input-folder Paketlendirecek uygulama dosyalarını içeren dizin

Seçenekler:

Seçenek Açıklama
--output <filename> Çıkış MSIX dosya adı (varsayılan: <name>.msix)
--name <name> Paket adı (varsayılan: manifestodan)
--manifest <path> AppxManifest.xml yolu (varsayılan: otomatik algılama)
--cert <path> İmzalama sertifikası yolu (otomatik imzalamayı etkinleştirir)
--cert-password <password> Sertifika parolası (varsayılan: "parola")
--generate-cert Yeni bir geliştirme sertifikası oluşturma
--install-cert Makineye sertifika yükleme
--publisher <name> Sertifika oluşturma için Publisher adı
--self-contained Windows App SDK çalışma zamanını paketleme
--skip-pri PRI dosya oluşturmayı atlama
--executable <path> Giriş klasörüne göre yürütülebilir dosyanın yolu. Bildirimdeki $targetnametoken$ yer tutucularını çözümlemek için kullanılır.

Ne yapar:

  • AppxManifest.xml dosyalarını doğrular ve işler
  • Bildirimdeki $placeholder$ belirteçleri çözümler (bkz Bildirim yer tutucuları)
  • Uygun çerçeve bağımlılıklarını sağlar
  • Yan yana bildirimleri kayıtlarla güncelleştirir
  • Bağımsız Windows App SDK dağıtımını işler
  • Sertifika sağlandıysa paketi imzalar

Örnekler:

# 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

hata ayıklama kimliği oluştur

Dış konum/seyrek paketleme kullanarak tam MSIX paketlemesi olmadan hata ayıklama için uygulama kimliği oluşturun.

winapp create-debug-identity [entrypoint] [options]

Argümanlar:

Argument Açıklama
entrypoint Kimlik doğrulaması gerektiren yürütülebilir dosya (.exe) veya betiğin yolu

Seçenekler:

Seçenek Açıklama
--manifest <path> AppxManifest.xml yolu (varsayılan: ./appxmanifest.xml)
--no-install Oluşturma işleminden sonra paketi yüklemeyin
--keep-identity Paket adına ve uygulama kimliğine .debug eklemeden bildirim kimliğini olduğu gibi bırakın.

Ne yapar:

  • Yürütülebilir dosyanın yan yana bildirimini değiştirir
  • Kimlik için hafif paketi kaydeder
  • Kimlik gerektiren API'lerde hata ayıklamayı etkinleştirir

Örnekler:

# 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

Bildirim komutları

bildirim oluşturma

Şablonlardan AppxManifest.xml oluşturun.

winapp manifest generate [directory] [options]

Argümanlar:

Argument Açıklama
directory Içinde bildirim oluşturulacak dizin (varsayılan: geçerli dizin)

Seçenekler:

Seçenek Açıklama
--package-name <name> Paket adı (varsayılan: klasör adı)
--publisher-name <name> Publisher CN (varsayılan: CN=<current user>)
--version <version> Sürüm (varsayılan: "1.0.0.0")
--description <text> Açıklama (varsayılan: "Uygulamam")
--entrypoint <path> Giriş noktası yürütülebilir dosyası veya betiği
--template <type> Şablon türü: packaged (varsayılan) veya sparse
--logo-path <path> Logo resim dosyasının yolu
--if-exists <Error\|Overwrite\|Skip> Dosya zaten varsa davranış (varsayılan: Hata)

Şablon:

Manifesto yer tutucuları

Paketleme zamanında otomatik olarak çözümlenen (dolar işareti ile sınırlandırılmış) $placeholder$ belirteçlerini kullanan oluşturulmuş bildirimler:

Yer tutucu Çözümlenme: Example
$targetnametoken$ Uzantısız yürütülebilir ad Executable="$targetnametoken$.exe" Olur Executable="MyApp.exe"
$targetentrypoint$ Windows.FullTrustApplication Her zaman otomatik olarak çözümlenir

Yer tutucular nasıl çözümlenir:

  • winapp pack seçeneğini veya giriş klasöründeki tek .exe'yi otomatik olarak algılayarak $targetnametoken$ kullanımıyla --executable çözümler.
  • winapp create-debug-identity sağlandığında giriş noktası bağımsız değişkeninden $targetnametoken$ çözümler.
  • winapp manifest generate --executable yürütülebilir dosyadan meta verileri ayıklar, ancak $targetnametoken$.exe daha sonra çözümleme için manifestte tutar.

Tavsiye

$targetnametoken$’yi taahhüt edilen bildiriminizde koruyarak, yürütülebilir adların sabit kodlanmasından kaçınırsınız ve hem winapp pack hem de Visual Studio derlemeleriyle çalışır.

Örnekler:

# 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

manifesto varlıkları güncelle

Tüm gerekli MSIX görüntü varlıklarını tek bir kaynak görüntüden oluşturun.

winapp manifest update-assets <image-path> [options]

Argümanlar:

Argument Açıklama
image-path Kaynak görüntü dosyasının yolu (PNG, JPG, GIF vb.)

Seçenekler:

Seçenek Açıklama
--manifest <path> AppxManifest.xml dosyasının yolu (varsayılan: geçerli dizinde ara)

Tek bir kaynak görüntü alır ve gerekli 12 MSIX görüntü varlığının tümünü doğru boyutlarda otomatik olarak oluşturur. Varlıklar, bildirim konumuna Assets göre dizine kaydedilir.

Örnekler:

# 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

Sertifika ve imzalama komutları

sertifika oluşturma

Paket imzalama için geliştirme sertifikaları oluşturun.

winapp cert generate [options]

Seçenekler:

Seçenek Açıklama
--manifest <appxmanifest.xml> Çıkar appxmanifest.xml dosyasından yayımcı bilgilerini
--publisher <name> Sertifika için Publisher adı
--output <path> Çıkış sertifikası dosya yolu
--password <password> Sertifika parolası (varsayılan: "parola")
--valid-days <days> Sertifikanın geçerli olduğu gün sayısı (varsayılan: 365)
--install Sertifikayı oluşturma sonrasında yerel makine deposuna yükleme
--if-exists <Error\|Overwrite\|Skip> Sertifika dosyası zaten varsa davranış (varsayılan: Hata)

sertifika yükleme

Sertifikayı makine sertifika deposuna yükleyin.

winapp cert install <cert-path>

Argümanlar:

Argument Açıklama
cert-path Yüklenecek sertifika dosyasının yolu

Örnekler:

# Generate certificate for specific publisher
winapp cert generate --publisher "CN=My Company" --output ./mycert.pfx

# Install certificate to machine
winapp cert install ./mycert.pfx

işaret

MSIX paketlerini ve yürütülebilir dosyaları sertifikalarla imzalayın.

winapp sign <file-path> [options]

Argümanlar:

Argument Açıklama
file-path İmzalanacak MSIX paketi veya yürütülebilir dosya yolu

Seçenekler:

Seçenek Açıklama
--cert <path> İmzalama sertifikası yolu
--cert-password <password> Sertifika parolası (varsayılan: "parola")

Örnekler:

# Sign MSIX package
winapp sign MyApp.msix --cert ./mycert.pfx

# Sign executable
winapp sign ./bin/MyApp.exe --cert ./mycert.pfx --cert-password mypassword

Yardımcı program komutları

araç

Windows SDK araçlarına doğrudan erişin. Microsoft.Windows.SDK.BuildTools'ta bulunan araçları kullanır.

winapp tool <tool-name> [tool-arguments]

Kullanılabilir araçlar:

  • makeappx - Uygulama paketleri oluşturma ve işleme
  • signtool - Dosyaları imzalama ve imzaları doğrulama
  • mt - Yan yana derlemeler için manifest aracı
  • Microsoft.Windows.SDK.BuildTools'un diğer Windows SDK araçları

Örnekler:

# Use signtool to verify signature
winapp tool signtool verify /pa MyApp.msix

store

Bir Microsoft Store Geliştirici CLI komutu çalıştırın. Bu komut, henüz indirilmemişse Microsoft Store Geliştirici CLI'sini indirir. Daha fazla bilgi için bkz. Microsoft Store Geliştirici CLI'sı.

winapp store [args...]

Argümanlar:

Argument Açıklama
args... Doğrudan CLI'ya geçirmek için msstore bağımsız değişkenler

Örnekler:

# 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>

get-win-uygulama-yolu

Yüklü Windows SDK bileşenlerinin yollarını alın.

winapp get-winapp-path [options]

Çalışma alanı dizinine .winapp , paket yükleme dizinlerine ve oluşturulan üst bilgi konumlarına giden yolları döndürür.


Node.js/Electron komutları

Bu komutlar yalnızca NPM paketinde kullanılabilir.

node eklenti-oluştur

Windows SDK ve Windows App SDK tümleştirmesi ile yerel C++ veya C# eklenti şablonları oluşturun.

npx winapp node create-addon [options]

Seçenekler:

Seçenek Açıklama
--name <name> Addon adı (varsayılan: "nativeWindowsAddon")
--template Eklenti türünü seçin: cs veya cpp (varsayılan: cpp)
--verbose Ayrıntılı çıktıyı etkinleştir

Ne yapar:

  • Şablon dosyalarıyla addon dizini oluşturur
  • Windows SDK örnekleriyle binding.gyp ve addon dosyaları oluşturur
  • Gerekli npm bağımlılıklarını yükler
  • package.json dosyasına derleme komut dosyası ekler

Örnekler:

# 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

Seyrek paketleme kullanarak Elektron geliştirme sürecine uygulama kimliği ekleyin. appxmanifest.xml dosyası gereklidir (veya winapp init veya winapp manifest generate ile oluşturabilirsiniz).

Önemli

Elektron uygulamalarında dağınık paketleme nedeniyle, uygulamanın başlangıçta çökmesine veya web içeriğini görüntülememesine neden olan bilinen bir sorun vardır. Sorun Windows'ta düzeltildi ancak henüz tüm cihazlara yayılmadı. Geçici çözüm olarak Electron uygulamanızda korumalı alanı devre dışı bırakmak için bu bayrağı kullanabilirsiniz.--no-sandbox Bu sorun tam MSIX paketlemesini etkilemez.

Elektron hata ayıklama kimliğini geriye almak için winapp node clear-electron-debug-identity kullanın.

npx winapp node add-electron-debug-identity [options]

Seçenekler:

Seçenek Açıklama
--manifest <path> Özel appxmanifest.xml dosyasının yolu (varsayılan: mevcut dizindeki appxmanifest.xml)
--no-install Bağımlılıkları yüklemeyin veya değiştirmeyin; yalnızca Elektron hata ayıklama kimliğini yapılandırma
--keep-identity Manifest kimliğini eklemeden olduğu gibi kalsın .debug
--verbose Ayrıntılı çıktıyı etkinleştir

Örnekler:

# 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

Özgün electron.exe yedekten geri yükleyerek Electron hata ayıklama işleminden paket kimliğini kaldırın.

npx winapp node clear-electron-debug-identity [options]

Seçenekler:

Seçenek Açıklama
--verbose Ayrıntılı çıktıyı etkinleştir

Örnekler:

# Remove identity from Electron development process
npx winapp node clear-electron-debug-identity