{"id":13706496,"url":"https://github.com/microsoft/winget-create","last_synced_at":"2026-03-14T04:12:54.257Z","repository":{"id":38994464,"uuid":"364050110","full_name":"microsoft/winget-create","owner":"microsoft","description":"The Windows Package Manager Manifest Creator command-line tool (aka wingetcreate)","archived":false,"fork":false,"pushed_at":"2025-05-09T21:53:45.000Z","size":61108,"stargazers_count":541,"open_issues_count":89,"forks_count":89,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-05-15T00:09:01.882Z","etag":null,"topics":["command-line","package-manager","windows","winget"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/microsoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-05-03T20:16:55.000Z","updated_at":"2025-05-10T15:59:17.000Z","dependencies_parsed_at":"2023-02-19T12:16:07.206Z","dependency_job_id":"74893fb6-ba6a-4a14-a539-41a44f86bcac","html_url":"https://github.com/microsoft/winget-create","commit_stats":{"total_commits":230,"total_committers":26,"mean_commits":8.846153846153847,"dds":0.5173913043478261,"last_synced_commit":"32123b96c41b35181546cced170119b082518be0"},"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fwinget-create","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fwinget-create/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fwinget-create/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fwinget-create/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/microsoft","download_url":"https://codeload.github.com/microsoft/winget-create/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254319718,"owners_count":22051072,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line","package-manager","windows","winget"],"created_at":"2024-08-02T22:00:58.174Z","updated_at":"2026-03-09T23:14:20.756Z","avatar_url":"https://github.com/microsoft.png","language":"C#","readme":"\n# Welcome to the Windows Package Manager Manifest Creator repository.\n\nThis repository contains the source code for the Windows Package Manager Manifest Creator.  The  Windows Package Manager Manifest Creator is designed to help generate or update manifest files for the [Community repo](https://github.com/microsoft/winget-pkgs).\n\n## Overview\n\n**Windows Package Manager Manifest Creator** is an Open Source tool designed to help developers create, update, and submit manifest files to the [Windows Package Manager repository](https://github.com/microsoft/winget-pkgs).\n\nDevelopers will use this tool to submit their applications for use with the [Windows Package Manager](https://docs.microsoft.com/windows/package-manager/).\n\n## Getting Started\n\nFor your convenience, **WingetCreate** can be acquired a number of ways.\n\n### Install from the github repo\n\nThe **Windows Package Manager Manifest Creator** is available for download from the [winget-create](https://github.com/microsoft/winget-create/releases) repository.  To install the package, simply click the the MSIX file in your browser.  Once it has downloaded, click open.\n\n### Install with Windows Package Manager\n\n```powershell\nwinget install wingetcreate\n```\n\n### Install with [Scoop](https://scoop.sh/)\n\n```powershell\nscoop install wingetcreate\n```\n\n### Install with [Chocolatey](https://chocolatey.org/)\n\n```powershell\nchoco install wingetcreate\n```\n\n## Build status\n\n[![Build Status](https://microsoft.visualstudio.com/Apps/_apis/build/status%2FADEX%2Fwinget-create%20Release?repoName=microsoft%2Fwinget-create\u0026branchName=main)](https://microsoft.visualstudio.com/Apps/_build/latest?definitionId=64953\u0026repoName=microsoft%2Fwinget-create\u0026branchName=main)\n## Using Windows Package Manager Manifest Creator\n\n**WingetCreate** has the following commands:\n\n| Command  | Description |\n| -------  | ----------- |\n| [New](doc/new.md)      | Command for creating a new manifest from scratch |\n| [Update](doc/update.md)  | Command for updating an existing manifest |\n| [New-Locale](doc/new-locale.md)  | Command for creating a new locale for an existing manifest |\n| [Update-Locale](doc/update-locale.md)  | Command for updating a locale for an existing manifest |\n| [Submit](doc/submit.md)  | Command for submitting an existing PR  |\n| [Show](doc/show.md)      | Command for displaying existing manifests  |\n| [Token](doc/token.md)   | Command for managing cached GitHub personal access tokens |\n| [Settings](doc/settings.md) | Command for editing the settings file configurations |\n| [Cache](doc/cache.md) | Command for managing downloaded installers stored in cache\n| [Info](doc/info.md)      | Displays information about the client |\n| [Dsc](doc/dsc.md)      | DSC v3 resource commands |\n| [-?](doc/help.md)      | Displays command line help |\n\nClick on the individual commands to learn more.\n\n## Using Windows Package Manager Manifest Creator in a CI/CD pipeline\n\nYou can use WingetCreate to update your existing app manifest as part of your CI/CD pipeline. For reference, see the final task in this repo's [release Azure pipeline](https://github.com/microsoft/winget-create/blob/main/pipelines/azure-pipelines.release.yml). If you are utilizing GitHub Actions as your CI pipeline, you can refer to the following repositories that have implemented WingetCreate within their release pipelines:\n\n- [Copilot CLI](https://github.com/github/copilot-cli/blob/v0.0.368-2/.github/workflows/winget.yml)\n- [Edit](https://github.com/microsoft/edit/blob/main/.github/workflows/winget.yml)\n- [Oh-My-Posh](https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/.github/workflows/release.yml#L139)\n- [PowerToys](https://github.com/microsoft/PowerToys/blob/main/.github/workflows/package-submissions.yml)\n- [Terminal](https://github.com/microsoft/terminal/blob/main/.github/workflows/winget.yml)\n- [WinGet Studio](https://github.com/microsoft/winget-studio/blob/main/.github/workflows/winget.yml)\n\nYou can also check out this [episode of Open at Microsoft](https://learn.microsoft.com/en-us/shows/open-at-microsoft/wingetcreate-keeping-winget-packages-up-to-date) where we cover the same topic.\n\n### Using the standalone exe:\n\nThe latest version of the standalone exe can be found at https://aka.ms/wingetcreate/latest, and the latest preview version can be found at https://aka.ms/wingetcreate/preview, both of these require [.NET Runtime 6.0](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) to be installed on the build machine. To install this on your build machine in your pipeline, you can include the following dotnet task:\n\n```yaml\n      - task: UseDotNet@2\n        displayName: 'Install .NET Runtime'\n        inputs:\n          packageType: sdk\n          version: '6.x'\n          installationPath: '$(ProgramFiles)\\dotnet'\n```\n\nOr you can utilize a PowerShell task and run the following script.\n\n```PowerShell\n    Invoke-WebRequest https://dot.net/v1/dotnet-install.ps1 -OutFile dotnet-install.ps1\n    .\\dotnet-install.ps1 -Runtime dotnet -Architecture x64 -Version 6.0.13 -InstallDir $env:ProgramFiles\\dotnet\n```\n\n\u003e [!IMPORTANT]\n\u003e Make sure your build machine has the [Microsoft Visual C++ Redistributable for Visual Studio](https://support.microsoft.com/en-us/topic/the-latest-supported-visual-c-downloads-2647da03-1eea-4433-9aff-95f26a218cc0) already installed. Without this, the standalone WingetCreate exe will fail to execute and likely show a \"DllNotFoundException\" error.\n\nTo execute the standalone exe, add another PowerShell task to download and run the ./wingetcreate.exe to update your existing manifest. You will need a GitHub personal access token if you would like to submit your updated manifest. It is not recommended to hardcode your PAT in your script as this poses as a security threat. You should instead store your PAT as a [secret pipeline variable](https://docs.microsoft.com/azure/devops/pipelines/process/variables?view=azure-devops\u0026tabs=yaml%2Cbatch#secret-variables) or a [repository secret](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) in case of GitHub Actions.\n\n```PowerShell\n    Invoke-WebRequest https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe\n    .\\wingetcreate.exe update \u003cpackageId\u003e -u $(packageUrls) -v $(manifestVersion) -t $(GITHUB_PAT)\n```\n\n### Using the msixbundle:\n\nWindows Server 2022 now supports App Execution Aliases, which means the alias `wingetcreate` can be used to run the tool after installing the msixbundle. The latest version of the msixbundle can be found at https://aka.ms/wingetcreate/latest/msixbundle. Similar to the standalone exe steps, download the msixbundle, add the package, and run `wingetcreate` to update your manifest.\n\n\u003e [!IMPORTANT]\n\u003e Winget-Create has a dependency on the [C++ Runtime Desktop framework package](https://docs.microsoft.com/en-us/troubleshoot/developer/visualstudio/cpp/libraries/c-runtime-packages-desktop-bridge). Be sure to also download and install this package prior to installing wingetcreate as shown in the steps below.\n\n```yaml\n- powershell: |\n        # Download and install C++ Runtime framework package.\n        iwr https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx -OutFile $(vcLibsBundleFile)\n        Add-AppxPackage $(vcLibsBundleFile)\n\n        # Download Winget-Create msixbundle, install, and execute update.\n        iwr https://aka.ms/wingetcreate/latest/msixbundle -OutFile $(appxBundleFile)\n        Add-AppxPackage $(appxBundleFile)\n        wingetcreate update Microsoft.WingetCreate -u $(packageUrl) -v $(manifestVersion) -t $(GITHUB_PAT) --submit\n```\n\nThe CLI also supports creating or updating manifests with multiple installer URLs. You can either create new manifests with multiple installer nodes using the [New Command](doc/new.md) or update existing manifests with multiple installer URLs using the [Update Command](doc/update.md).\n\n## GitHub Personal Access Token (classic) Permissions\n\nWhen [creating your own GitHub Personal Access Token (PAT)](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) to be used with WingetCreate, make sure the following permissions are selected.\n\n- Select the **public_repo** scope to allow access to public repositories\n\n![public_repo scope](./doc/images/tokenscope-publicrepo.png)\n\n- (Optional) Select the **delete_repo** scope permission if you want WingetCreate to automatically delete the forked repo that it created if the PR submission fails.\n\n## Building the client\n\n### Prerequisites\n\nYou can install the prerequisites in one of two ways:\n\n#### Using the configuration file\n\n1. Clone the repository\n2. Configure your system\n   * Configure your system using the [configuration file](.config/configuration.winget). To run the configuration, use `winget configure .config/configuration.winget` from the project root or you can double-click the file directly from the file explorer.\n   * Alternatively, if you already are running the minimum OS version, have Visual Studio installed, and have developer mode enabled, you may configure your Visual Studio directly via the .vsconfig file. To do this:\n     * Open the Visual Studio Installer, select “More” on your product card and then \"Import configuration\"\n     * Specify the .vsconfig file at the root of the repo and select “Review Details”\n\n#### Manual set up\n\n* Windows 10 1709 (16299) or later\n* [Developer mode enabled](https://docs.microsoft.com/windows/uwp/get-started/enable-your-device-for-development) (optional)\n* [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/)\n   * Or use winget to install it ;) (although you may need to adjust the workloads via Tools -\u003e Get Tools and Features...)\n* [Git Large File Storage (LFS)](https://git-lfs.github.com/)\n* The following workloads:\n   * .NET Desktop Development\n   * Universal Windows Platform Development\n* Windows 11 SDK (10.0.22000.0) (Tools -\u003e Get Tools and Features -\u003e Individual Components)\n\n### Building\n\nOpen `winget-create\\src\\WingetCreateCLI.sln` in Visual Studio and build. We currently only build using the solution; command line methods of building a VS solution should work as well.\n\n## Testing the client\n\n### Running Unit and E2E Tests\n\nRunning unit and E2E tests are a great way to ensure that functionality is preserved across major changes. You can run these tests in Visual Studio Test Explorer.\n\n### Testing Prerequisites\n\n* Fork the [winget-pkgs-submission-test repository](https://github.com/microsoft/winget-pkgs-submission-test)\n* Fill out the test parameters in the `WingetCreateTests/Test.runsettings` file\n    *  `WingetPkgsTestRepoOwner`: The repository owner of the winget-pkgs-submission-test repo. (Repo owner must be forked from main \"winget-pkgs-submission-test\" repo)\n    *  `WingetPkgsTestRepo`: The winget-pkgs test repository. (winget-pkgs-submission-test)\n\n* Set the solution wide runsettings file for the tests\n    * Go to `Test` menu \u003e `Configure Run Settings` -\u003e `Select Solution Wide runsettings File` -\u003e Choose your configured runsettings file\n\n* Set up your github token:\n    * __[Recommended]__ Run `wingetcreate token -s` to go through the Github authentication flow\n    * Or create a personal access token with the `repo` permission and set it as an environment variable `WINGET_CREATE_GITHUB_TOKEN`. _(This option is more convenient for CI/CD pipelines.)_\n\n## Contributing\n\nThis project welcomes contributions and suggestions.  Most contributions require you to agree to a\nContributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us\nthe rights to use your contribution. For details, visit https://cla.opensource.microsoft.com. More\ninformation is available in our [CONTRIBUTING.md](/CONTRIBUTING.md) file.\n\nWhen you submit a pull request, a CLA bot will automatically determine whether you need to provide\na CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions\nprovided by the bot. You will only need to do this once across all repos using our CLA.\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information, please refer to the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or\ncontact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\n## Data/Telemetry\n\nThe wingetcreate.exe client is instrumented to collect usage and diagnostic (error) data and sends it to Microsoft to help improve the product.\n\nIf you build the client yourself the instrumentation will not be enabled and no data will be sent to Microsoft.\n\nThe wingetcreate.exe client respects machine wide privacy settings and users can opt-out on their device, as documented in the Microsoft Windows privacy statement [here](https://support.microsoft.com/help/4468236/diagnostics-feedback-and-privacy-in-windows-10-microsoft-privacy).\n\nIn short to opt-out, do one of the following:\n\n**Windows 11**: Go to `Start`, then select `Settings` \u003e `Privacy \u0026 security` \u003e `Diagnostics \u0026 feedback` \u003e `Diagnostic data` and unselect `Send optional diagnostic data`.\n\n**Windows 10**: Go to `Start`, then select `Settings` \u003e `Privacy` \u003e `Diagnostics \u0026 feedback`, and select `Required diagnostic data`.\n\nYou can also opt-out of telemetry by configuring the `settings.json` file and setting the `telemetry.disabled` field to true. More information can be found in our [Settings Command documentation](/doc/settings.md)\n\nSee the [privacy statement](/PRIVACY.md) for more details.\n\n## Known Issues\n\nCertain functionalities of wingetcreate, particularly input prompting, may not be fully supported on certain shells such as PowerShell ISE. The supported shells for the prompting package utilized by wingetcreate are specified [here](https://github.com/shibayan/Sharprompt#supported-platforms)\n","funding_links":[],"categories":["windows","C# #","package-manager"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrosoft%2Fwinget-create","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicrosoft%2Fwinget-create","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicrosoft%2Fwinget-create/lists"}