Paket bildiriminizi oluşturma

Windows Paket Yöneticisi Topluluk Deposubir yazılım paketi göndermek istiyorsanız, bir paket bildirimi oluşturarak başlayın. Bildirim, yüklenecek uygulamayı açıklayan bir YAML dosyasıdır.

Windows Paket Yöneticisi Bildirim Oluşturucusu, YAMLOluştur PowerShell betiğini kullanabilir veya aşağıdaki yönergeleri izleyerek el ile bir bildirim oluşturabilirsiniz.

Not

Manifest dosyalarını, paketleri ve sürümleri açıklayan daha genel üst düzey bilgiler için aşağıdaki Manifest SSS'sine bakın.

Manifest Oluşturma Seçenekleri

WinGetCreate Yardımcı Programını Kullanma

aşağıdaki komutu kullanarak wingetcreate yardımcı programını yükleyebilirsiniz.

winget install wingetcreate

Yüklemeden sonra yeni bir paket oluşturmak ve istemleri doldurmak için wingetcreate new çalıştırabilirsiniz. WinGetCreate istemlerindeki son seçenek, bildirimi paketler deposuna göndermektir. Evet'i seçerseniz, Çekme İsteğiniz (PR) Windows Paket Yöneticisi Topluluk Deposu'e otomatik olarak gönderilir.

YAMLCreate.ps1 kullanma

Bildirim dosyalarını yazmanıza yardımcı olmak için, Windows Paket Yöneticisi Topluluk Deposu'ndaki Araçlar klasöründe bulunan YAMLCreate.ps1 PowerShell betiğinihazırladık. Betiği, bilgisayarınızdaki depoyu kopyalayıp doğrudan Araçları klasöründen çalıştırarak kullanabilirsiniz. Betik sizden yükleyicinin URL'sini ister, ardından meta verileri doldurmanızı ister. WinGetCreatekullanımına benzer şekilde, bu betik bildiriminizi otomatik olarak gönderme seçeneğini sunar.

YAML ile ilgili temel bilgiler

YAML biçimi, diğer Microsoft geliştirme araçlarıyla insan okunabilirliği ve tutarlılığının göreli kolaylığı nedeniyle paket bildirimleri için seçilmiştir. YAML söz dizimini bilmiyorsanız, Y Dakikada YAML Öğrenadresinde temel bilgileri öğrenebilirsiniz.

Not

Windows Paket Yöneticisi bildirimleri şu anda tüm YAML özelliklerini desteklememektedir. Desteklenmeyen YAML özellikleri arasında yer işaretleri, karmaşık anahtarlar ve kümeler bulunur.

Konvansiyonlar

Bu kurallar bu makalede kullanılır:

  • : solunda, bildiri tanımlarında kullanılan sabit bir anahtar sözcüktür.
  • :'ın sağında bir veri türü vardır. Veri türü, dize gibi ilkel bir tür veya bu makalenin başka bir yerinde tanımlanan zengin bir yapıya başvuru olabilir.
  • [ veri türü] gösterimi, belirtilen veri türünün bir dizisini gösterir. Örneğin, [ string ] bir dize dizisidir.
  • Bir veri türünün diğerine eşlenme durumunu gösteren gösterim: {veri türü:veri türü}. Örneğin, { string: string } dizelerin dizelere eşlemesi.

Manifesto içeriği

Paket bildirimi, yazılımınızı yükleme müşteri deneyimini iyileştirmeye yardımcı olabilecek gerekli öğelerden ve isteğe bağlı öğelerden oluşur. Bu bölüm, gerekli bildirim şemasının kısa bir özetini ve her birinin örneklerini içeren eksiksiz bildirim şemalarını sağlar.

Bildirim dosyasındaki her alan Pascal biçeminde olmalı ve tekrarlanamaz.

Bir manifestteki öğelerin tam listesi ve açıklamaları için manifest belirtimine, Windows Paket Yöneticisi Topluluk Deposu'te bakın.

En az gerekli şema

tekil JSON şemasıbelirtildiği gibi, yalnızca belirli alanlar gereklidir. Desteklenen en düşük YAML dosyası aşağıdaki örneğe benzer olacaktır. Tekli biçim yalnızca tek bir yükleyici ve tek bir yerel ayar içeren paketler için geçerlidir. Birden fazla yükleyici veya yerel ayar sağlanırsa, birden çok YAML dosya biçimi ve şeması kullanılmalıdır.

Bölümleme düzeni, GitHub'ın UX'iyle ilgili yardım almak için eklendi. Binlerce alt öğe içeren klasörler tarayıcıda iyi görüntülenmez.

PackageIdentifier:  # Publisher.package format.
PackageVersion:     # Version numbering format.
PackageLocale:      # BCP 47 format (e.g. en-US)
Publisher:          # The name of the publisher.
PackageName:        # The name of the application.
License:            # The license of the application.
ShortDescription:   # The description of the application.
Installers: 
 - Architecture:    # Enumeration of supported architectures.
   InstallerType:   # Enumeration of supported installer types (exe, msi, msix, inno, wix, nullsoft, appx, font).
   InstallerUrl:    # Path to download installation file.
   InstallerSha256: # SHA256 calculated from installer.
ManifestType:       # The manifest file type
ManifestVersion: 1.12.0

Birden çok manifesto dosyası

En iyi kullanıcı deneyimini sağlamak için bildirimler mümkün olduğunca çok meta veri içermelidir. Yükleyicileri doğrulama ve yerelleştirilmiş meta veriler sağlamayla ilgili endişeleri ayırmak için bildirimler birden çok dosyaya bölünmelidir. Bu tür bir bildirim için en az ÜÇ YAML dosyası sayısıdır. Ek yerel ayarlar da sağlanmalıdır.

Aşağıdaki örnekte birçok isteğe bağlı meta veri alanı ve birden çok yerel ayar gösterilmektedir. Varsayılan yerel ayarın ek yerel ayarlardan daha fazla gereksinimi olduğunu unutmayın. göster komutu, ek yerel ayarlar için sağlanmayan tüm gerekli alanlar varsayılan yerel ayardaki alanları görüntüler.

Yol: manifests / m / Microsoft / WindowsTerminal / 1.6.10571.0 / Microsoft.WindowsTerminal.yaml

PackageIdentifier: "Microsoft.WindowsTerminal"
PackageVersion: "1.6.10571.0"
DefaultLocale: "en-US"
ManifestType: "version"
ManifestVersion: "1.12.0"

Not

Yükleyiciniz bir .exe ise ve Nullsoft veya Inno kullanılarak oluşturulduysa, bunun yerine bu değerleri belirtebilirsiniz. Nullsoft veya Inno belirtildiğinde, istemci yükleyiciye sessiz ve ilerlemeli sessiz yükleme davranışlarını otomatik olarak ayarlar.

Yükleyici seçenekleri

Genellikle komut satırı aracılığıyla yükleyiciye bir Switches geçirerek yükleyici için hangi sessiz -?'ın kullanılabilir olduğunu anlayabilirsiniz. Aşağıda, farklı yükleyici türleri için kullanılabilecek bazı yaygın sessiz Switches bulunmaktadır.

Yükleyici Komut Dokümantasyon
MSI /q MSI Command-Line Seçenekleri
InstallShield /s InstallShield Command-Line Parametreleri
Inno Kurulumu /SILENT or /VERYSILENT Inno Kurulum belgeleri
Nullsoft /S Nullsoft Sessiz Yükleyicileri/Kaldırıcıları

İpuçları ve en iyi yöntemler

  • Paket tanımlayıcısı benzersiz olmalıdır. Aynı paket tanımlayıcısıyla birden çok gönderime sahip olamazsınız. Paket sürümü başına yalnızca bir çekme isteğine izin verilir.
  • Birden çok yayımcı klasörü oluşturmaktan kaçının. Örneğin, zaten bir "Contoso" klasörü varsa "Contoso Ltd." oluşturmayın.
  • Tüm araçlar sessiz yüklemeyi desteklemelidir. Sessiz yüklemeyi desteklemeyen bir yürütülebilir dosyanız varsa bu aracı şu anda sağlayamıyoruz.
  • Mümkün olduğunca çok alan sağlayın. Ne kadar çok meta veri sağlarsanız, kullanıcı deneyimi o kadar iyi olur. Bazı durumlarda, alanlar henüz Windows Paket Yöneticisi istemcisi (winget.exe) tarafından desteklenmeyebilir. Örneğin, AppMoniker alanı isteğe bağlıdır. Ancak, bu alanı eklerseniz, müşteriler Moniker komutunu gerçekleştirirken değeriyle ilişkili sonuçlar görür (örneğin, Visual Studio Codeiçin vscode ). Belirtilen Moniker değerine sahip tek bir uygulama varsa, müşteriler tam paket tanımlayıcısı yerine takma adı belirterek uygulamanızı yükleyebilir.
  • Bu belirtimdeki dizelerin uzunluğu, satır sonu öncesinde 100 karakterle sınırlanmalıdır.
  • PackageName, dışarı aktarmayı veyükseltmeyi desteklemek üzere bildirimlerle bağıntıya yardımcı olmak için Program Ekle/Kaldır'nde yapılan girişle eşleşmelidir.
  • Publisher, dışarı aktarmayı veyükseltmeyi desteklemek üzere bildirimlerle bağıntıya yardımcı olmak için Program Ekle/Kaldır'nde yapılan girişle eşleşmelidir.
  • MSI biçimindeki paket yükleyicileri, uygulamaları benzersiz bir şekilde tanımlamak için ürün kodlarını kullanır. Paketin belirli bir sürümünün ürün kodu, en iyi yükseltme deneyimini sağlamaya yardımcı olmak için bildirime eklenmelidir.
  • Paketin belirtilen sürümü için birden fazla yükleyici türü varsa, InstallerTypeher birinin altına bir Installers örneği yerleştirilebilir.

Manifest SSS

Bildirim nedir?

Bildirimler, Windows paket yöneticisi tarafından Windows işletim sistemine yazılım yüklemek ve yükseltmek için kullanılan meta verileri içeren YAML dosyalarıdır. GitHub 'daki winget-pkgs deposundakimanifests dizini altında bölümlenmiş binlerce dosya vardır. Windows Paket Yöneticisi dizin yapısının bölümlenmiş olması gerekiyordu, bu nedenle bir bildirim ararken sitede bu kadar kaydırmanız gerekmez.

Paket nedir?

Bir paketi bir uygulama veya yazılım programı olarak düşünün. Windows Paket Yöneticisi, benzersiz bir paketi temsil etmek için "PackageIdentifier" kullanır. Bunlar genellikle Publisher.Packagebiçimindedir. Bazen ikinci bir dönemle ayrılmış ek değerler görebilirsiniz.

Sürüm nedir?

Paket sürümleri belirli bir sürümle ilişkilendirilir. Bazı durumlarda mükemmel biçimlendirilmiş bir anlamsal sürüm numaraları görürsünüz ve diğer durumlarda farklı bir şey görebilirsiniz. Bunlar tarih temelli olabilir veya pakete özgü anlamlara sahip başka karakterlere sahip olabilir. Paket sürümü için YAML anahtarı "PackageVersion" şeklindedir.

Dizin yapısını anlama ve ilk bildiriminizi oluşturma hakkında daha fazla bilgi için bkz. GitHub'daki winget-pkgs deposunda Yazma Bildirimleri.