Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Se quiser enviar um pacote de software para o Repositório da Comunidade do Gestor de Pacotes do Windows, comece por criar um manifesto de pacote. O manifesto é um arquivo YAML que descreve o aplicativo a ser instalado.
Você pode usar o Criador de Manifesto do Gerenciador de Pacotes do Windows, o script YAMLCreate PowerShell ou pode criar um manifesto manualmente seguindo as instruções abaixo.
Observação
Consulte a de perguntas frequentes sobre manifesto de abaixo para obter informações mais gerais de alto nível explicando manifestos, pacotes e versões.
Opções para criação de manifesto
Usando o utilitário WinGetCreate
Você pode instalar o utilitário wingetcreate usando o comando abaixo.
winget install wingetcreate
Após a instalação, você pode executar wingetcreate new para criar um novo pacote e preencher os prompts. A última opção nos prompts do WinGetCreate é submeter o manifesto ao repositório de pacotes. Ao escolheres sim, o teu Pull Request (PR) será automaticamente submetido ao repositório da comunidade do Gerenciador de Pacotes do Windows .
Usando o YAMLCreate.ps1
Para ajudar a criar arquivos de manifesto, fornecemos um script powershell YAMLCreate.ps1 localizado na pasta Ferramentas no repositório da comunidade do Gerenciador de Pacotes do Windows. Você pode usar o script clonando o repositório em seu PC e executando o script diretamente da pasta Ferramentas. O script solicitará o URL para o instalador e, em seguida, solicitará que você preencha os metadados. Semelhante ao uso de WinGetCreate, este script oferecerá a opção de enviar um manifesto automaticamente.
Noções básicas do YAML
O formato YAML foi escolhido para manifestos de pacotes devido à sua relativa facilidade de leitura humana e consistência com outras ferramentas de desenvolvimento da Microsoft. Se não estás familiarizado com a sintaxe YAML, podes aprender o básico em Aprenda YAML em Y Minutos.
Observação
Atualmente, os manifestos do Gerenciador de Pacotes do Windows não oferecem suporte a todos os recursos do YAML. Os recursos YAML não suportados incluem âncoras, chaves complexas e conjuntos.
Convenções
Estas convenções são usadas neste artigo:
- À esquerda de
:está uma palavra-chave literal utilizada em definições de manifesto. - À direita de
:, encontra-se um tipo de dados. O tipo de dados pode ser um tipo primitivo como cadeia de caracteres ou uma referência a uma estrutura rica definida em outro lugar neste artigo. - A notação
[tipo de dados]indica uma matriz do tipo de dados mencionado. Por exemplo,[ string ]é uma matriz de cadeias de caracteres. - A notação
{tipo de dados:tipo de dados}indica um mapeamento de um tipo de dados para outro. Por exemplo,{ string: string }é um mapeamento de cadeias de caracteres para cadeias de caracteres.
Conteúdo do manifesto
Um manifesto de pacote consiste em itens necessários e itens opcionais que podem ajudar a melhorar a experiência do cliente na instalação do software. Esta seção fornece um breve resumo do esquema de manifesto necessário e esquemas de manifesto completos com exemplos de cada um.
Cada campo no ficheiro de manifesto deve estar em Pascal case e não pode ser duplicado.
Para obter uma lista completa e descrições de itens em um manifesto, consulte o de especificação de manifesto de no Repositório da Comunidade do Gerenciador de Pacotes do Windows.
Esquema mínimo necessário
Conforme especificado no esquema JSON singleton , apenas determinados campos são obrigatórios. O arquivo YAML mínimo suportado seria parecido com o exemplo abaixo. O formato singleton só é válido para pacotes que contenham um único instalador e uma única localidade. Se mais de um instalador ou localidade for fornecido, o formato de arquivo e esquema múltiplos YAML devem ser usados.
O esquema de particionamento foi adicionado para ajudar com a UX do GitHub. Pastas com milhares de filhos não renderizam bem no navegador.
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).
InstallerUrl: # Path to download installation file.
InstallerSha256: # SHA256 calculated from installer.
ManifestType: # The manifest file type
ManifestVersion: 1.6.0
Vários arquivos de manifesto
Para fornecer a melhor experiência ao usuário, os manifestos devem conter o máximo de metadados possível. A fim de separar as preocupações para validar instaladores e fornecer metadados localizados, os manifestos devem ser divididos em vários arquivos. O número mínimo de arquivos YAML para esse tipo de manifesto é três. Localidades adicionais também devem ser fornecidas.
- Uma versão arquivo (JSON Schema).
- O arquivo (JSON Schema) do local predefinido .
- Um arquivo de instalador (JSON Schema).
- Arquivos de localização adicional (JSON Schema).
O exemplo abaixo mostra muitos campos de metadados opcionais e várias localidades. Observe que a localidade padrão tem mais requisitos do que localidades adicionais. No comando show, todos os campos obrigatórios que não são fornecidos para localidades adicionais exibirão campos da localidade padrão.
- Exemplo de arquivo de versão
- Exemplo de arquivo de localidade padrão
- Exemplo de ficheiro de localização adicional
- Exemplo de arquivo do instalador
Caminho: manifestos / 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.6.0"
Observação
Se o instalador for um .exe e tiver sido criado usando Nullsoft ou Inno, você poderá especificar esses valores. Quando Nullsoft ou Inno são especificados, o cliente definirá automaticamente o modo de instalação silenciosa e com progresso para o instalador.
Comutadores de instalação
Frequentemente, pode determinar quais Switches silenciosos estão disponíveis para um instalador, ao passar um -? para o instalador através da linha de comando. Aqui estão alguns Switches silenciosos comuns que podem ser usados para diferentes tipos de instaladores.
| Instalador | Comando | Documentação |
|---|---|---|
| MSI | /q |
Opções de Command-Line MSI |
| InstallShield | /s |
Parâmetros do InstallShield Command-Line |
| Configuração Inno | /SILENT or /VERYSILENT |
Documentação do Inno Setup |
| Nullsoft | /S |
Instaladores/Desinstaladores Silenciosos Nullsoft |
Dicas e melhores práticas
- O identificador do pacote deve ser exclusivo. Não é possível ter vários envios com o mesmo identificador de pacote. Apenas uma solicitação pull por versão do pacote é permitida.
- Evite criar várias pastas do editor. Por exemplo, não crie "Contoso Ltd." se já houver uma pasta "Contoso".
- Todas as ferramentas devem suportar uma instalação silenciosa. Se você tem um executável que não suporta uma instalação silenciosa, então não podemos fornecer essa ferramenta no momento.
- Forneça o maior número possível de campos. Quanto mais metadados você fornecer, melhor será a experiência do usuário. Em alguns casos, os campos podem ainda não ser suportados pelo cliente do Gestor de Pacotes do Windows (winget.exe). Por exemplo, o campo
AppMonikeré opcional. No entanto, se incluir este campo, os clientes verão os resultados associados ao valorMonikerao executar o comando de pesquisa (por exemplo, vscode para Visual Studio Code). Se houver apenas um aplicativo com o valor deMonikerespecificado, os clientes poderão instalar seu aplicativo especificando o moniker em vez do identificador de pacote totalmente qualificado. - O comprimento das cadeias de caracteres nesta especificação deve ser limitado a 100 caracteres antes de uma quebra de linha.
- O
PackageNamedeve corresponder à entrada feita no Adicionar / Remover Programas para ajudar na correlação com manifestos para suportar exportare atualizar. - O
Publisherdeve corresponder à entrada feita no Adicionar / Remover Programas para ajudar na correlação com manifestos para suportar exportare atualizar. - Os instaladores de pacotes no formato MSI usam códigos de produto para identificar aplicativos exclusivamente. O código do produto para uma determinada versão de um pacote deve ser incluído no manifesto para ajudar a garantir a melhor atualização experiência.
- Quando existir mais de um tipo de instalador para a versão especificada do pacote, uma instância de
InstallerTypepode ser colocada sob cada um dosInstallers.
Manifesto FAQ
O que é um manifesto?
Manifestos são arquivos YAML contendo metadados usados pelo Gerenciador de Pacotes do Windows para instalar e atualizar o software no sistema operacional Windows. Existem milhares desses arquivos particionados sob o diretório manifests no repositório winget-pkgs no GitHub. A estrutura de diretórios do Gerenciador de Pacotes do Windows teve que ser particionada para que você não precise rolar tanto no site ao procurar um manifesto.
O que é um pacote?
Pense em um pacote como um aplicativo ou um programa de software. O Gerenciador de Pacotes do Windows usa um "PackageIdentifier" para representar um pacote exclusivo. Estes são geralmente na forma de Publisher.Package. Às vezes, você pode ver valores adicionais separados por um segundo ponto.
O que é uma versão?
As versões do pacote estão associadas a um lançamento específico. Em alguns casos, você verá números de versão semânticos perfeitamente formados e, em outros casos, poderá ver algo diferente. Estes podem ser baseados em datas ou podem conter outros caracteres com significado específico para o pacote. A chave YAML para uma versão do pacote é "PackageVersion".
Para obter mais informações sobre como entender a estrutura de diretórios e criar seu primeiro manifesto, consulte Criação de manifestos no repositório winget-pkgs no GitHub.
Windows developer