CINXE.COM
msix | Dart package
<!DOCTYPE html> <html lang="en-us"><head><script src="https://www.googletagmanager.com/gtm.js?id=GTM-MX6DBN9" async="async"></script><script src="/static/hash-o6oemknr/js/gtm.js" async="async"></script><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="twitter:card" content="summary"/><meta name="twitter:site" content="@dart_lang"/><meta name="twitter:description" content="A command-line tool that create Msix installer from your flutter windows-build files."/><meta name="twitter:image" content="https://pub.dev/static/hash-o6oemknr/img/pub-dev-icon-cover-image.png"/><meta property="og:type" content="website"/><meta property="og:site_name" content="Dart packages"/><meta property="og:title" content="msix | Dart package"/><meta property="og:description" content="A command-line tool that create Msix installer from your flutter windows-build files."/><meta property="og:image" content="https://pub.dev/static/hash-o6oemknr/img/pub-dev-icon-cover-image.png"/><meta property="og:url" content="https://pub.dev/packages/msix"/><title>msix | Dart package</title><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Google+Sans:wght@400;500;700&family=Google+Sans+Display:wght@400&family=Google+Sans+Text:wght@400;500;700&family=Google+Sans+Mono:wght@400;700&display=swap"/><link rel="shortcut icon" href="/favicon.ico?hash=nk4nss8c7444fg0chird9erqef2vkhb8"/><link rel="stylesheet" href="https://www.gstatic.com/glue/v25_0/ccb.min.css"/><link rel="search" type="application/opensearchdescription+xml" title="Dart packages" href="/osd.xml"/><link rel="canonical" href="https://pub.dev/packages/msix"/><meta name="description" content="A command-line tool that create Msix installer from your flutter windows-build files."/><link rel="alternate" type="application/atom+xml" title="Updated Packages Feed for Pub" href="/feed.atom"/><link rel="stylesheet" type="text/css" href="/static/hash-o6oemknr/material/bundle/styles.css"/><link rel="stylesheet" type="text/css" href="/static/hash-o6oemknr/css/style.css"/><script src="/static/hash-o6oemknr/material/bundle/script.min.js" defer="defer"></script><script src="/static/hash-o6oemknr/js/script.dart.js" defer="defer"></script><script src="https://www.gstatic.com/brandstudio/kato/cookie_choice_component/cookie_consent_bar.v3.js" defer="defer" data-autoload-cookie-consent-bar="true"></script><meta name="pub-page-data" content="eyJwa2dEYXRhIjp7InBhY2thZ2UiOiJtc2l4IiwidmVyc2lvbiI6IjMuMTYuOCIsImxpa2VzIjo4MzksInB1Ymxpc2hlcklkIjoia3JlbWVyLnNvZnR3YXJlIiwiaXNEaXNjb250aW51ZWQiOmZhbHNlLCJpc0xhdGVzdCI6dHJ1ZX0sInNlc3Npb25Bd2FyZSI6ZmFsc2V9"/><link rel="preload" href="/static/hash-o6oemknr/highlight/highlight-with-init.js" as="script"/></head><body class="light-theme"><script src="/static/hash-o6oemknr/js/dark-init.js"></script><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MX6DBN9" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div class="site-header"><button class="hamburger" aria-label="menu toggle"></button><a class="logo" href="/"><img class="site-logo" src="/static/hash-o6oemknr/img/pub-dev-logo.svg" alt="" width="140" height="30" role="presentation"/></a><div class="site-header-space"></div><div class="site-header-mask"></div><div class="site-header-search"><form action="/packages" method="GET"><input class="site-header-search-input" name="q" placeholder="New search..." autocomplete="on" title="Search"/></form></div><nav class="site-header-nav scroll-container"><div class="nav-login-container"><button id="-account-login" class="nav-main-button link">Sign in</button></div><div class="nav-container nav-help-container hoverable"><button class="nav-main-button">Help</button><div class="nav-hover-popup"><div class="nav-table-columns"><div class="nav-table-column"><h3>Pub.dev</h3><a class="nav-link" href="/help/search" rel="noopener" target="_blank">Searching for packages</a><a class="nav-link" href="/help/scoring" rel="noopener" target="_blank">Package scoring and pub points</a></div><div class="nav-table-column"><h3>Flutter</h3><a class="nav-link" href="https://flutter.dev/using-packages/" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://flutter.dev/developing-packages/" rel="noopener" target="_blank">Developing packages and plugins</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div><div class="nav-table-column"><h3>Dart</h3><a class="nav-link" href="https://dart.dev/guides/packages" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div></div></div></div><div class="nav-container nav-help-container-mobile foldable"><h3 class="foldable-button">Pub.dev <img class="foldable-icon" src="/static/hash-o6oemknr/img/nav-mobile-foldable-icon.svg" alt="toggle folding of the section" width="13" height="6"/></h3><div class="foldable-content"><a class="nav-link" href="/help/search" rel="noopener" target="_blank">Searching for packages</a><a class="nav-link" href="/help/scoring" rel="noopener" target="_blank">Package scoring and pub points</a></div></div><div class="nav-container nav-help-container-mobile foldable"><h3 class="foldable-button">Flutter <img class="foldable-icon" src="/static/hash-o6oemknr/img/nav-mobile-foldable-icon.svg" alt="toggle folding of the section" width="13" height="6"/></h3><div class="foldable-content"><a class="nav-link" href="https://flutter.dev/using-packages/" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://flutter.dev/developing-packages/" rel="noopener" target="_blank">Developing packages and plugins</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div></div><div class="nav-container nav-help-container-mobile foldable"><h3 class="foldable-button">Dart <img class="foldable-icon" src="/static/hash-o6oemknr/img/nav-mobile-foldable-icon.svg" alt="toggle folding of the section" width="13" height="6"/></h3><div class="foldable-content"><a class="nav-link" href="https://dart.dev/guides/packages" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div></div></nav></div><div id="banner-container"></div><main class="container"><div class="detail-wrapper -active -has-info-box"><div class="detail-banners"><a href="https://flutter.dev/docs/development/packages-and-plugins/favorites" rel="noopener" target="_blank"><img class="ff-banner ff-banner-desktop displayed-in-light-theme" src="/static/hash-o6oemknr/img/ff-banner-desktop-2x.png" alt="" width="150" height="218" title="Package is a Flutter Favorite" role="presentation"/><img class="ff-banner ff-banner-desktop displayed-in-dark-theme" src="/static/hash-o6oemknr/img/ff-banner-desktop-dark-2x.png" alt="" width="150" height="218" title="Package is a Flutter Favorite" role="presentation"/><img class="ff-banner ff-banner-mobile displayed-in-light-theme" src="/static/hash-o6oemknr/img/ff-banner-mobile-2x.png" alt="" width="94" height="116" title="Package is a Flutter Favorite" role="presentation"/><img class="ff-banner ff-banner-mobile displayed-in-dark-theme" src="/static/hash-o6oemknr/img/ff-banner-mobile-dark-2x.png" alt="" width="94" height="116" title="Package is a Flutter Favorite" role="presentation"/></a></div><div class="detail-header -is-loose"><div class="detail-container"><div class="detail-header-outer-block"><div class="detail-header-content-block"><h1 class="title">msix 3.16.8 <span class="pkg-page-title-copy"><img class="pkg-page-title-copy-icon filter-invert-on-dark" src="/static/hash-o6oemknr/img/content-copy-icon.svg" alt="copy "msix: ^3.16.8" to clipboard" width="18" height="18" title="Copy "msix: ^3.16.8" to clipboard" data-copy-content="msix: ^3.16.8" data-ga-click-event="copy-package-version"/><div class="pkg-page-title-copy-feedback"><span class="code">msix: ^3.16.8</span> copied to clipboard</div></span></h1><div class="metadata">Published <span><a class="-x-ago" href="" title="Aug 15, 2024" aria-label="3 months ago" aria-role="button" role="button" data-timestamp="1723737352453">3 months ago</a></span> • <a class="-pub-publisher" href="/publishers/kremer.software"><img class="-pub-publisher-shield filter-invert-on-dark" src="/static/hash-o6oemknr/img/material-icon-verified.svg" alt="verified publisher" width="14" height="14" title="Published by a pub.dev verified publisher"/>kremer.software</a><span class="package-badge" title="Package is compatible with Dart 3.">Dart 3 compatible</span></div><div class="detail-tags-and-like"><div class="detail-tags"><div class="-pub-tag-badge"><span class="tag-badge-main">SDK</span><a class="tag-badge-sub" href="/packages?q=sdk%3Adart" rel="nofollow" title="Packages compatible with Dart SDK">Dart</a><a class="tag-badge-sub" href="/packages?q=sdk%3Aflutter" rel="nofollow" title="Packages compatible with Flutter SDK">Flutter</a></div><div class="-pub-tag-badge"><span class="tag-badge-main">Platform</span><a class="tag-badge-sub" href="/packages?q=platform%3Awindows" rel="nofollow" title="Packages compatible with Windows platform">Windows</a></div></div><div class="detail-like"><button id="-pub-like-icon-button" class="mdc-icon-button" data-ga-click-event="toggle-like" aria-pressed="false" title="Like this package"><img class="mdc-icon-button__icon" src="/static/hash-o6oemknr/img/like-inactive.svg" alt="liked status: inactive" width="18" height="18"/><img class="mdc-icon-button__icon mdc-icon-button__icon--on" src="/static/hash-o6oemknr/img/like-active.svg" alt="liked status: active" width="18" height="18"/></button><span class="likes-count"><span id="likes-count">839</span></span></div></div></div></div></div></div><div class="detail-container"><div class="detail-lead"><div class="detail-metadata-toggle"><div class="detail-metadata-toggle-icon">→</div><h3 class="detail-lead-title">Metadata</h3></div><p class="detail-lead-text">A command-line tool that create Msix installer from your flutter windows-build files.</p><p class="detail-lead-more"><a class="detail-metadata-toggle">More...</a></p></div></div><div class="detail-body"><div class="detail-tabs"><div class="detail-tabs-wide-header"><div class="detail-container"><ul class="detail-tabs-header"><li class="detail-tab tab-button detail-tab-readme-title -active">Readme</li><li class="detail-tab tab-link detail-tab-changelog-title"><a href="/packages/msix/changelog" role="button">Changelog</a></li><li class="detail-tab tab-link detail-tab-example-title"><a href="/packages/msix/example" role="button">Example</a></li><li class="detail-tab tab-link detail-tab-installing-title"><a href="/packages/msix/install" role="button">Installing</a></li><li class="detail-tab tab-link detail-tab-versions-title"><a href="/packages/msix/versions" role="button">Versions</a></li><li class="detail-tab tab-link detail-tab-analysis-title"><a href="/packages/msix/score" role="button">Scores</a></li></ul></div></div><div class="detail-container detail-body-main"><div class="detail-tabs-content"><section class="tab-content detail-tab-readme-content -active markdown-body"><p><img src="https://user-images.githubusercontent.com/946652/138101650-bf934b21-ced7-4836-a197-2e424ee1f86c.png" alt="MSIX"></p> <a href="https://flutter.dev/docs/development/packages-and-plugins/favorites" title="Flutter Favorite program"> <img src="https://user-images.githubusercontent.com/946652/152225760-309041e9-266e-42da-9915-34478ee74736.png" alt="Flutter Favorite Badge" align="right"> </a> <p><a href="https://pub.dev/packages/msix"><img src="https://img.shields.io/pub/v/msix.svg?color=blue" alt="pub package"></a> <a href="https://github.com/microsoft/MSIX-Toolkit" rel="ugc"><img src="https://img.shields.io/github/v/tag/microsoft/MSIX-Toolkit?color=blue&label=MSIX-Toolkit" alt="MSIX toolkit package"></a> <a href="https://github.com/YehudaKremer/msix/issues?q=is:issue+is:closed" rel="ugc"><img src="https://img.shields.io/github/issues-closed/YehudaKremer/msix?color=green" alt="issues-closed"></a> <a href="https://github.com/YehudaKremer/msix/issues" rel="ugc"><img src="https://img.shields.io/github/issues-raw/YehudaKremer/msix" alt="issues-open"></a> <a href="https://codemagic.io/apps/61fc249977f79ce332414c45/61fc249977f79ce332414c44/latest_build" rel="ugc"><img src="https://api.codemagic.io/apps/61fc249977f79ce332414c45/61fc249977f79ce332414c44/status_badge.svg" alt="Codemagic build status"></a></p> <p><a href="https://docs.microsoft.com/en-us/windows/msix/" rel="ugc">MSIX</a> is a Windows app packaging format from Microsoft that combines the best features of MSI, .appx, App-V, and ClickOnce to provide a modern and reliable packaging experience.</p> <p>This package offers a command line tool for creating MSIX installers from your Flutter app, making it easy to <a href="https://docs.microsoft.com/en-us/windows/uwp/publish/app-submissions" rel="ugc">publish your app to the Microsoft Store</a> or host it on a website.</p> <h2 class="hash-header" id="-installation">📋 Installation <a href="#-installation" class="hash-link">#</a></h2> <p>In your <code>pubspec.yaml</code>, add the <code>msix</code> package as a new <a href="https://dart.dev/tools/pub/dependencies#dev-dependencies">dev dependency</a> with the following command:</p> <pre><code class="language-console">PS c:\src\flutter_project> flutter pub add --dev msix </code></pre> <h2 class="hash-header" id="-creating-an-msix-installer">📦 Creating an MSIX installer <a href="#-creating-an-msix-installer" class="hash-link">#</a></h2> <p>To create a MSIX installer, run the following command:</p> <pre><code class="language-console">PS c:\src\flutter_project> dart run msix:create </code></pre> <h2 class="hash-header" id="-configuring-your-installer">⚙️ Configuring your installer <a href="#-configuring-your-installer" class="hash-link">#</a></h2> <p>You will almost certainly want to customize various settings in the MSIX installer, such as the application title, the default icon, and which <a href="https://docs.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations" rel="ugc">Windows capabilities</a> your application needs. You can customize the generated MSIX installer by adding declarations to an <code>msix_config:</code> node in your <code>pubspec.yaml</code> file:</p> <pre><code class="language-yaml">msix_config: display_name: Flutter App publisher_display_name: Company Name identity_name: company.suite.flutterapp msix_version: 1.0.0.0 logo_path: C:\path\to\logo.png capabilities: internetClient, location, microphone, webcam </code></pre> <p>See <a href="https://pub.dev/packages/msix/example">Configurations Examples And Use Cases</a>.</p> <h3 class="hash-header" id="available-configurations">Available Configurations <a href="#available-configurations" class="hash-link">#</a></h3> <details> <summary>MSIX configuration (click to expand)</summary> <table> <thead> <tr> <th>YAML name</th> <th>Command-line argument</th> <th>Description (from Microsoft <a href="https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/appxmanifestschema/schema-root" rel="ugc">Package manifest schema reference</a>)</th> <th>Example</th> </tr> </thead> <tbody> <tr> <td><code>display_name</code></td> <td><code>--display-name</code> <code>-d</code></td> <td>A friendly app name that can be displayed to users.</td> <td><code>Flutter App</code></td> </tr> <tr> <td><code>publisher_display_name</code></td> <td><code>--publisher-display-name</code> <code>-u</code></td> <td>A friendly name for the publisher that can be displayed to users.</td> <td><code>Company Name</code></td> </tr> <tr> <td><code>identity_name</code></td> <td><code>--identity-name</code> <code>-i</code></td> <td>Defines the unique identifier for the app.</td> <td><code>company.suite.flutterapp</code></td> </tr> <tr> <td><code>msix_version</code></td> <td><code>--version</code></td> <td>The version number of the package, in <code>a.b.c.d</code> format. <a href="https://github.com/YehudaKremer/msix/blob/main/doc/msix_version.md" rel="ugc">see how the msix version is determined</a>.</td> <td><code>1.0.0.0</code></td> </tr> <tr> <td><code>logo_path</code></td> <td><code>--logo-path</code> <code>-l</code></td> <td>Path to an <a href="https://github.com/brendan-duncan/image#supported-image-formats" rel="ugc">image file</a> for use as the app icon (size recommended at least 400x400px).</td> <td><code>C:\images\logo.png</code></td> </tr> <tr> <td><code>trim_logo</code></td> <td><code>--trim-logo <true/false></code></td> <td>If <code>false</code>, don't trim the logo image, default is <code>true</code>.</td> <td><code>true</code></td> </tr> <tr> <td><code>capabilities</code></td> <td><code>--capabilities</code> <code>-e</code></td> <td>List of the <a href="https://docs.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations" rel="ugc">capabilities</a> the app requires.</td> <td><code>internetClient,location,microphone,webcam</code></td> </tr> <tr> <td><code>languages</code></td> <td><code>--languages</code></td> <td>Declares the language resources contained in the package.</td> <td><code>en-us, ja-jp</code></td> </tr> <tr> <td><code>file_extension</code></td> <td><code>--file-extension</code> <code>-f</code></td> <td>File extensions that the app may be registered to open.</td> <td><code>.picture, .image</code></td> </tr> <tr> <td><code>protocol_activation</code></td> <td><code>--protocol-activation</code></td> <td><a href="https://docs.microsoft.com/en-us/windows/uwp/launch-resume/handle-uri-activation" rel="ugc">Protocols activation</a> that will activate the app.</td> <td><code>http,https</code></td> </tr> <tr> <td><code>app_uri_handler_hosts</code></td> <td><code>--app-uri-handler-hosts</code></td> <td>Enable <a href="https://docs.microsoft.com/en-us/windows/uwp/launch-resume/web-to-app-linking" rel="ugc">apps for websites</a> using app URI handlers app.</td> <td><code>test.com, test2.info</code></td> </tr> <tr> <td><code>execution_alias</code></td> <td><code>--execution-alias</code></td> <td><a href="https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap5-executionalias" rel="ugc">Execution alias</a> command (cmd) that will activate the app.</td> <td><code>myapp</code></td> </tr> <tr> <td><code>enable_at_startup</code></td> <td><code>--enable-at-startup</code></td> <td>App start at startup or user log-in.</td> <td><code>true</code></td> </tr> <tr> <td><code>store</code></td> <td><code>--store</code></td> <td>Generate a MSIX file for publishing to the Microsoft Store.</td> <td><code>false</code></td> </tr> <tr> <td><code>os_min_version</code></td> <td><code>--os-min-version</code></td> <td>Set minimum OS version, default is <code>10.0.17763.0</code></td> <td><code>10.0.17763.0</code></td> </tr> <tr> <td><a href="https://github.com/YehudaKremer/msix/blob/main/doc/toast_notifications_configuration.md" rel="ugc">Toast Notifications configuration</a></td> <td></td> <td></td> <td></td> </tr> <tr> <td><a href="https://github.com/YehudaKremer/msix/blob/main/doc/startup_task_configuration.md" rel="ugc">Startup Task configuration</a></td> <td></td> <td>pass the app values (args) on startup or user log-in</td> <td></td> </tr> <tr> <td><a href="https://github.com/YehudaKremer/msix/blob/main/doc/context_menu_configuration.md" rel="ugc">Context Menu configuration</a></td> <td></td> <td>Use your context menu dll with your app</td> <td></td> </tr> </tbody> </table> </details> <details> <summary>Build configuration (click to expand)</summary> <table> <thead> <tr> <th>YAML name</th> <th>Command-line argument</th> <th>Description</th> <th>Example</th> </tr> </thead> <tbody> <tr> <td><code>debug</code></td> <td><code>--debug</code> or <code>--release</code></td> <td>Create MSIX from the <strong>debug</strong> or <strong>release</strong> build files (<code>\build\windows\runner\<Debug/Release></code>), <strong>release</strong> is the default.</td> <td><code>true</code></td> </tr> <tr> <td><code>output_path</code></td> <td><code>--output-path</code> <code>-o</code></td> <td>The directory where the output MSIX file should be stored.</td> <td><code>C:\src\some\folder</code></td> </tr> <tr> <td><code>output_name</code></td> <td><code>--output-name</code> <code>-n</code></td> <td>The filename that should be given to the created MSIX file.</td> <td><code>flutterApp_dev</code></td> </tr> <tr> <td><code>architecture</code></td> <td><code>--architecture</code> <code>-h</code></td> <td>Describes the architecture of the code in the package, <code>x64</code> or <code>arm64</code>, <code>x64</code> is default.</td> <td><code>x64</code></td> </tr> <tr> <td><code>build_windows</code></td> <td><code>--build-windows <true/false></code></td> <td>If <code>false</code>, don't run the build command <code>flutter build windows</code>, default is <code>true</code>.</td> <td><code>true</code></td> </tr> <tr> <td><code>windows_build_args</code></td> <td><code>--windows-build-args</code></td> <td>Any arguments for the <code>flutter build windows</code> command.</td> <td><code>--obfuscate --split-debug-info=C:\Users\me\folder</code></td> </tr> </tbody> </table> </details> <details> <summary>Sign configuration (click to expand)</summary> <table> <thead> <tr> <th>YAML name</th> <th>Command-line argument</th> <th>Description</th> <th>Example</th> </tr> </thead> <tbody> <tr> <td><code>certificate_path</code></td> <td><code>--certificate-path</code> <code>-c</code></td> <td>Path to the certificate content to place in the store.</td> <td><code>C:\certs\signcert.pfx</code> or <code>C:\certs\signcert.crt</code></td> </tr> <tr> <td><code>certificate_password</code></td> <td><code>--certificate-password</code> <code>-p</code></td> <td>Password for the certificate.</td> <td><code>1234</code></td> </tr> <tr> <td><code>publisher</code></td> <td><code>--publisher</code> <code>-b</code></td> <td>The <code>Subject</code> value in the certificate.<br> Required only if publish to the store, or if the <code>Publisher</code> will not found automatically by this package.</td> <td><code>CN=BF212345-5644-46DF-8668-014043C1B138</code> or <code>CN=Contoso Software, O=Contoso Corporation, C=US</code></td> </tr> <tr> <td><code>signtool_options</code></td> <td><code>--signtool-options</code></td> <td>Options to be provided to the <code>signtool</code> for app signing (see below.)</td> <td><code>/v /fd SHA256 /f C:/Users/me/Desktop/my.cer</code></td> </tr> <tr> <td><code>sign_msix</code></td> <td><code>--sign-msix <true/false></code></td> <td>If <code>false</code>, don't sign the msix file, default is <code>true</code>.<br>Note: when <strong>false</strong>, <code>publisher</code> is Required.</td> <td><code>true</code></td> </tr> <tr> <td><code>install_certificate</code></td> <td><code>--install-certificate <true/false></code></td> <td>If <code>false</code>, don't try to install the certificate, default is <code>true</code>.</td> <td><code>true</code></td> </tr> </tbody> </table> </details> <h2 class="hash-header" id="-signing-options">✒️ Signing options <a href="#-signing-options" class="hash-link">#</a></h2> <p>Published MSIX installers should be <a href="https://docs.microsoft.com/en-us/windows/msix/package/create-certificate-package-signing" rel="ugc">signed with a certificate</a>, to help ensure that app installs and updates come from trustworthy sources.</p> <ul> <li>For development purposes, this package is configured by default to automatically sign your app with a <a href="https://docs.microsoft.com/en-us/windows/msix/package/create-certificate-package-signing#create-a-self-signed-certificate" rel="ugc">self signed</a> <strong>test certificate</strong>, which makes it easy to test your install prior to release.</li> <li>If you publish your app to the <strong>Microsoft Store</strong>, the installation package will be signed automatically by the store.</li> <li>If you need to use your <strong>own signing certificate</strong>, for example to release the app outside of the Microsoft Store, you can use the configuration fields <code>certificate_path</code> and <code>certificate_password</code> to configure a certificate of your choice.</li> </ul> <p>You can also provide custom options to the signing tool with the <code>--signtool-options</code> command, as shown above. For more information on available options, see the <a href="https://docs.microsoft.com/en-us/dotnet/framework/tools/signtool-exe" rel="ugc">signtool documentation</a>. Note that using this option overrides the <code>certificate_path</code> and <code>certificate_password</code> fields.</p> <p><strong>Note</strong>: By default, the MSIX package will install the certificate on your machine. You can disable this by using the <code>--install-certificate false</code> option, or the YAML option <code>install_certificate: false</code>.</p> <h2 class="hash-header" id="microsoft-store-icon-publishing-to-the-microsoft-store"><img src="https://user-images.githubusercontent.com/946652/152312614-1e86b108-98af-4bcf-8a75-d7a4449078b2.png" alt="microsoft store icon"> Publishing to the Microsoft Store <a href="#microsoft-store-icon-publishing-to-the-microsoft-store" class="hash-link">#</a></h2> <p>To generate an MSIX file for publishing to the Microsoft Store, use the <code>--store</code> flag, or alternatively add <code>store: true</code> to the YAML configuration.</p> <p><strong>Note</strong>: For apps published to the Microsoft Store, the configuration values <code>publisher_display_name</code>, <code>identity_name</code>, <code>msix_version</code> and <code>publisher</code> must all be configured and should match the registered publisher and app name from the <a href="https://partner.microsoft.com/dashboard" rel="ugc">Microsoft Store dashboard</a>, as per <a href="https://user-images.githubusercontent.com/946652/138753431-fa7dee7d-99b6-419c-94bf-4514c761abba.png" rel="ugc">this screenshot</a>.</p> <h2 class="hash-header" id="-publishing-outside-the-store">🌐 Publishing outside the store <a href="#-publishing-outside-the-store" class="hash-link">#</a></h2> <p>You can use the <a href="https://docs.microsoft.com/en-us/windows/msix/app-installer/app-installer-file-overview" rel="ugc">App Installer</a> file to enable your users to install and update the app from local file share.</p> <p>Note: installing from the web <code>ms-appinstaller:</code> is <a href="https://docs.microsoft.com/en-us/windows/msix/app-installer/installing-windows10-apps-web" rel="ugc">disabled</a> for now.</p> <p>To create a App Installer file, first set the <code>publish_folder_path</code> configuration, then run the following command:</p> <pre><code class="language-console">PS c:\src\flutter_project> dart run msix:publish </code></pre> <details> <summary>Available configurations for App Installer (click to expand)</summary> <h5 id="app-installer-configuration-example">App Installer configuration example:</h5> <pre><code class="language-yaml">msix_config: display_name: Flutter App app_installer: #<-- app installer configuration publish_folder_path: c:\path\to\myPublishFolder hours_between_update_checks: 0 automatic_background_task: true update_blocks_activation: true show_prompt: true force_update_from_any_version: false msix_version: 1.0.3.0 </code></pre> <table> <thead> <tr> <th>YAML name</th> <th>Command-line argument</th> <th>Description (from Microsoft <a href="https://docs.microsoft.com/en-us/uwp/schemas/appinstallerschema/element-onlaunch" rel="ugc">schema reference</a>)</th> <th>Example</th> </tr> </thead> <tbody> <tr> <td><code>publish_folder_path</code></td> <td><code>--publish-folder-path</code></td> <td>A path to publish folder, where the msix versions and the .appinstaller file will be saved.</td> <td><code>c:\path\to\myPublishFolder</code></td> </tr> <tr> <td><code>hours_between_update_checks</code></td> <td><code>--hours-between-update-checks</code></td> <td>Defines the minimal time gap between update checks, when the user open the app. default is <strong>0</strong> (will check for update every time the app opened)</td> <td><code>2</code></td> </tr> <tr> <td><code>automatic_background_task</code></td> <td><code>--automatic-background-task</code></td> <td>Checks for updates in the background every 8 hours independently of whether the user launched the app.</td> <td><code>false</code></td> </tr> <tr> <td><code>update_blocks_activation</code></td> <td><code>--update-blocks-activation</code></td> <td>Defines the experience when an app update is checked for.</td> <td><code>false</code></td> </tr> <tr> <td><code>show_prompt</code></td> <td><code>--show-prompt</code></td> <td>Defines if a window is displayed when updates are being installed, and when updates are being checked for.</td> <td><code>false</code></td> </tr> <tr> <td><code>force_update_from_any_version</code></td> <td><code>--force-update-from-any-version</code></td> <td>Allows the app to update from version x to version x++ or to downgrade from version x to version x--.</td> <td><code>false</code></td> </tr> </tbody> </table> </details> <h2 class="hash-header" id="-unsupported-features">⚠️ Unsupported Features <a href="#-unsupported-features" class="hash-link">#</a></h2> <p>We added the most common features of Msix in this package, however, if you need to add or edit a feature that is not supported yet, you can do this manually.</p> <p>First, create the unpackaged msix files with the following command</p> <pre><code class="language-console">PS c:\src\flutter_project> dart run msix:build </code></pre> <p>Then edit the files that were created in the build folder.</p> <p>After that create a msix installer file from those files with the following command</p> <pre><code class="language-console">PS c:\src\flutter_project> dart run msix:pack </code></pre> <hr> <p>Tags: <code>msi</code> <code>windows</code> <code>win10</code> <code>win11</code> <code>windows10</code> <code>windows11</code> <code>windows store</code> <code>windows installer</code> <code>windows packaging</code> <code>appx</code> <code>AppxManifest</code> <code>SignTool</code> <code>MakeAppx</code></p> </section></div></div></div><aside class="detail-info-box"><a class="packages-scores" href="/packages/msix/score"><div class="packages-score packages-score-like"><div class="packages-score-value -has-value"><span class="packages-score-value-number">839</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">likes</div></div><div class="packages-score packages-score-health"><div class="packages-score-value -has-value"><span class="packages-score-value-number">150</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">pub points</div></div><div class="packages-score packages-score-popularity"><div class="packages-score-value -has-value"><span class="packages-score-value-number">96</span><span class="packages-score-value-sign">%</span></div><div class="packages-score-label">popularity</div></div></a><div class="detail-screenshot-thumbnail"><div class="thumbnail-container" data-thumbnail="/packages/msix/versions/3.16.8/gen-res/gen/screenshot.webp" data-thumbnail-descriptions-json="["A command-line tool that create Msix installer from your flutter windows-build files."]" data-ga-click-event="screenshot-thumbnail-click"><img class="thumbnail-image" src="/packages/msix/versions/3.16.8/gen-res/gen/190x190/screenshot.webp" alt="screenshot" title="View screenshots" tabindex="0"/></div><img class="collections-icon" src="/static/hash-o6oemknr/img/collections_white_24dp.svg" alt="" width="30" height="30" role="presentation"/></div><h3 class="title">Publisher</h3><p><a href="/publishers/kremer.software"><img class="-pub-publisher-shield filter-invert-on-dark" src="/static/hash-o6oemknr/img/material-icon-verified.svg" alt="verified publisher" width="14" height="14" title="Published by a pub.dev verified publisher"/>kremer.software</a></p><h3 class="title pkg-infobox-metadata">Metadata</h3><p>A command-line tool that create Msix installer from your flutter windows-build files.</p><p><a class="link" href="https://github.com/YehudaKremer/msix" rel="ugc">Repository (GitHub)</a><br/><a class="link" href="https://github.com/YehudaKremer/msix/issues" rel="ugc">View/report issues</a><br/></p><h3 class="title">Topics</h3><p><a href="/packages?q=topic%3Awindows" rel="nofollow">#windows</a> <a href="/packages?q=topic%3Atool" rel="nofollow">#tool</a></p><h3 class="title">Documentation</h3><p><a class="link" href="/documentation/msix/latest/">API reference</a><br/></p><h3 class="title">License</h3><p><img class="inline-icon-img filter-invert-on-dark" src="/static/hash-o6oemknr/img/material-icon-balance.svg" alt="" width="14" height="14" role="presentation"/>MIT (<a href="/packages/msix/license">license</a>)</p><h3 class="title">Dependencies</h3><p><a href="/packages/args" title="^2.3.0">args</a>, <a href="/packages/cli_util" title="^0.4.0">cli_util</a>, <a href="/packages/console" title="^4.1.0">console</a>, <a href="/packages/get_it" title="^7.2.0">get_it</a>, <a href="/packages/image" title="^4.0.9">image</a>, <a href="/packages/package_config" title="^2.1.0">package_config</a>, <a href="/packages/path" title="^1.8.0">path</a>, <a href="/packages/pub_semver" title="^2.1.0">pub_semver</a>, <a href="/packages/yaml" title="^3.1.0">yaml</a></p><h3 class="title">More</h3><p><a href="/packages?q=dependency%3Amsix" rel="nofollow">Packages that depend on msix</a></p></aside></div><script type="application/ld+json">{"@context":"http\u003a\u002f\u002fschema.org","@type":"SoftwareSourceCode","name":"msix","version":"3.16.8","description":"msix - A command-line tool that create Msix installer from your flutter windows-build files.","url":"https\u003a\u002f\u002fpub.dev\u002fpackages\u002fmsix","dateCreated":"2020-11-02T18\u003a40\u003a48.295607Z","dateModified":"2024-08-15T15\u003a55\u003a52.453188Z","programmingLanguage":"Dart","image":"https\u003a\u002f\u002fpub.dev\u002fstatic\u002fimg\u002fpub-dev-icon-cover-image.png","license":"https\u003a\u002f\u002fpub.dev\u002fpackages\u002fmsix\u002flicense"}</script></div><div class="detail-metadata"><h3 class="detail-metadata-title"><span class="detail-metadata-toggle">←</span> Metadata</h3><div class="detail-info-box"><a class="packages-scores" href="/packages/msix/score"><div class="packages-score packages-score-like"><div class="packages-score-value -has-value"><span class="packages-score-value-number">839</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">likes</div></div><div class="packages-score packages-score-health"><div class="packages-score-value -has-value"><span class="packages-score-value-number">150</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">pub points</div></div><div class="packages-score packages-score-popularity"><div class="packages-score-value -has-value"><span class="packages-score-value-number">96</span><span class="packages-score-value-sign">%</span></div><div class="packages-score-label">popularity</div></div></a><div class="detail-screenshot-thumbnail"><div class="thumbnail-container" data-thumbnail="/packages/msix/versions/3.16.8/gen-res/gen/screenshot.webp" data-thumbnail-descriptions-json="["A command-line tool that create Msix installer from your flutter windows-build files."]" data-ga-click-event="screenshot-thumbnail-click"><img class="thumbnail-image" src="/packages/msix/versions/3.16.8/gen-res/gen/190x190/screenshot.webp" alt="screenshot" title="View screenshots" tabindex="0"/></div><img class="collections-icon" src="/static/hash-o6oemknr/img/collections_white_24dp.svg" alt="" width="30" height="30" role="presentation"/></div><h3 class="title">Publisher</h3><p><a href="/publishers/kremer.software"><img class="-pub-publisher-shield filter-invert-on-dark" src="/static/hash-o6oemknr/img/material-icon-verified.svg" alt="verified publisher" width="14" height="14" title="Published by a pub.dev verified publisher"/>kremer.software</a></p><h3 class="title pkg-infobox-metadata">Metadata</h3><p>A command-line tool that create Msix installer from your flutter windows-build files.</p><p><a class="link" href="https://github.com/YehudaKremer/msix" rel="ugc">Repository (GitHub)</a><br/><a class="link" href="https://github.com/YehudaKremer/msix/issues" rel="ugc">View/report issues</a><br/></p><h3 class="title">Topics</h3><p><a href="/packages?q=topic%3Awindows" rel="nofollow">#windows</a> <a href="/packages?q=topic%3Atool" rel="nofollow">#tool</a></p><h3 class="title">Documentation</h3><p><a class="link" href="/documentation/msix/latest/">API reference</a><br/></p><h3 class="title">License</h3><p><img class="inline-icon-img filter-invert-on-dark" src="/static/hash-o6oemknr/img/material-icon-balance.svg" alt="" width="14" height="14" role="presentation"/>MIT (<a href="/packages/msix/license">license</a>)</p><h3 class="title">Dependencies</h3><p><a href="/packages/args" title="^2.3.0">args</a>, <a href="/packages/cli_util" title="^0.4.0">cli_util</a>, <a href="/packages/console" title="^4.1.0">console</a>, <a href="/packages/get_it" title="^7.2.0">get_it</a>, <a href="/packages/image" title="^4.0.9">image</a>, <a href="/packages/package_config" title="^2.1.0">package_config</a>, <a href="/packages/path" title="^1.8.0">path</a>, <a href="/packages/pub_semver" title="^2.1.0">pub_semver</a>, <a href="/packages/yaml" title="^3.1.0">yaml</a></p><h3 class="title">More</h3><p><a href="/packages?q=dependency%3Amsix" rel="nofollow">Packages that depend on msix</a></p></div><p class="detail-lead-back"><a class="detail-metadata-toggle">Back</a></p></div><div id="-screenshot-carousel" class="carousel"><fab id="-carousel-prev" class="mdc-fab carousel-prev carousel-nav" data-mdc-auto-init="MDCRipple" title="Previous" data-ga-click-event="screenshot-carousel-prev-click" tabindex="0"><div class="mdc-fab__ripple"></div><img class="mdc-fab__icon" src="/static/hash-o6oemknr/img/keyboard_arrow_left.svg" alt="previous" width="24" height="24" aria-hidden="true"/></fab><div id="-image-container" class="image-container"></div><fab id="-carousel-next" class="mdc-fab carousel-next carousel-nav" data-mdc-auto-init="MDCRipple" title="Next" data-ga-click-event="screenshot-carousel-next-click" tabindex="0"><div class="mdc-fab__ripple"></div><img class="mdc-fab__icon" src="/static/hash-o6oemknr/img/keyboard_arrow_right.svg" alt="next" width="24" height="24" aria-hidden="true"/></fab><p id="-screenshot-description" class="screenshot-description"></p></div></main><footer class="site-footer"><a class="link" href="https://dart.dev/">Dart language</a><a class="link sep" href="/report?subject=package%3Amsix&url=https%3A%2F%2Fpub.dev%2Fpackages%2Fmsix">Report package</a><a class="link sep" href="/policy">Policy</a><a class="link sep" href="https://www.google.com/intl/en/policies/terms/">Terms</a><a class="link sep" href="https://developers.google.com/terms/">API Terms</a><a class="link sep" href="/security">Security</a><a class="link sep" href="https://www.google.com/intl/en/policies/privacy/">Privacy</a><a class="link sep" href="/help">Help</a><a class="link icon sep" href="/feed.atom"><img class="inline-icon" src="/static/hash-o6oemknr/img/rss-feed-icon.svg" alt="RSS" width="20" height="20" title="RSS/atom feed"/></a><a class="link icon github_issue" href="https://github.com/dart-lang/pub-dev/issues/new"><img class="inline-icon" src="/static/hash-o6oemknr/img/bug-report-white-96px.png" alt="bug report" width="20" height="20" title="Report an issue with this site"/></a></footer><script src="/static/hash-o6oemknr/highlight/highlight-with-init.js" defer="defer"></script></body></html>