{"id":13446156,"url":"https://github.com/activescott/lessmsi","last_synced_at":"2026-02-20T12:09:39.311Z","repository":{"id":9969174,"uuid":"11993845","full_name":"activescott/lessmsi","owner":"activescott","description":"A tool to view and extract the contents of an Windows Installer (.msi) file.","archived":false,"fork":false,"pushed_at":"2026-02-15T19:31:57.000Z","size":93683,"stargazers_count":1666,"open_issues_count":54,"forks_count":186,"subscribers_count":52,"default_branch":"master","last_synced_at":"2026-02-16T01:34:51.849Z","etag":null,"topics":["c-sharp","chocolatey","extract","extract-files","install","install-script","msi","windows"],"latest_commit_sha":null,"homepage":"https://lessmsi.activescott.com","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/activescott.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":["https://tip4commit.com/github/activescott/lessmsi"]}},"created_at":"2013-08-09T05:32:33.000Z","updated_at":"2026-02-15T19:27:11.000Z","dependencies_parsed_at":"2024-05-28T09:52:33.761Z","dependency_job_id":"16d50e9c-7a82-4c20-af7b-f7eddf56d969","html_url":"https://github.com/activescott/lessmsi","commit_stats":null,"previous_names":[],"tags_count":71,"template":false,"template_full_name":null,"purl":"pkg:github/activescott/lessmsi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/activescott%2Flessmsi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/activescott%2Flessmsi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/activescott%2Flessmsi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/activescott%2Flessmsi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/activescott","download_url":"https://codeload.github.com/activescott/lessmsi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/activescott%2Flessmsi/sbom","scorecard":{"id":163952,"data":{"date":"2025-08-11","repo":{"name":"github.com/activescott/lessmsi","commit":"0dfe029d4a61d92bb6e130d1fd5a18223cf4370d"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Code-Review","score":7,"reason":"Found 22/30 approved changesets -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":8,"reason":"5 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":0,"reason":"binaries present in source code","details":["Warn: binary detected: lib/wix.dll:1","Warn: binary detected: lib/wixcab.dll:1","Warn: binary detected: src/.build/MSBuild.Community.Tasks.dll:1","Warn: binary detected: src/.nuget/NuGet.exe:1","Warn: binary detected: src/Lessmsi.Tests/TestFiles/MsiInput/AppleMobileDeviceSupport64.msi:1","Warn: binary detected: src/Lessmsi.Tests/TestFiles/MsiInput/ExtractOnlySomeFiles.msi:1","Warn: binary detected: src/Lessmsi.Tests/TestFiles/MsiInput/IviNetSharedComponents32_Fx20_1.3.0.msi:1","Warn: binary detected: src/Lessmsi.Tests/TestFiles/MsiInput/NUnit-2.5.2.9222.msi:1","Warn: binary detected: src/Lessmsi.Tests/TestFiles/MsiInput/Path With Spaces/spaces example.msi:1","Warn: binary detected: src/Lessmsi.Tests/TestFiles/MsiInput/Slik-Subversion-1.6.6-x64.msi:1","Warn: binary detected: src/Lessmsi.Tests/TestFiles/MsiInput/VBRuntime.msi:1","Warn: binary detected: src/Lessmsi.Tests/TestFiles/MsiInput/X86 Debuggers And Tools-x86_en-us.msi:1","Warn: binary detected: src/Lessmsi.Tests/TestFiles/MsiInput/long-directory-name/very/unusually/long/directory/name/with/cream/sugar/and/chocolate/topping/python-2.7.3.msi:1","Warn: binary detected: src/Lessmsi.Tests/TestFiles/MsiInput/msi_with_external_cab.msi:1","Warn: binary detected: src/Lessmsi.Tests/TestFiles/MsiInput/putty-0.68-installer.msi:1","Warn: binary detected: src/Lessmsi.Tests/TestFiles/MsiInput/python-2.7.3.msi:1","Warn: binary detected: src/Lessmsi.Tests/TestFiles/MsiInput/vcredist.msi:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v2.7.3 not signed: https://api.github.com/repos/activescott/lessmsi/releases/222973803","Warn: release artifact v2.7.2 not signed: https://api.github.com/repos/activescott/lessmsi/releases/222510775","Warn: release artifact v2.7.1 not signed: https://api.github.com/repos/activescott/lessmsi/releases/220552940","Warn: release artifact v2.7.0 not signed: https://api.github.com/repos/activescott/lessmsi/releases/202956975","Warn: release artifact v2.6.0 not signed: https://api.github.com/repos/activescott/lessmsi/releases/201933183","Warn: release artifact v2.7.3 does not have provenance: https://api.github.com/repos/activescott/lessmsi/releases/222973803","Warn: release artifact v2.7.2 does not have provenance: https://api.github.com/repos/activescott/lessmsi/releases/222510775","Warn: release artifact v2.7.1 does not have provenance: https://api.github.com/repos/activescott/lessmsi/releases/220552940","Warn: release artifact v2.7.0 does not have provenance: https://api.github.com/repos/activescott/lessmsi/releases/202956975","Warn: release artifact v2.6.0 does not have provenance: https://api.github.com/repos/activescott/lessmsi/releases/201933183"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T14:19:30.297Z","repository_id":9969174,"created_at":"2025-08-16T14:19:30.298Z","updated_at":"2025-08-16T14:19:30.298Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29650506,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T09:27:29.698Z","status":"ssl_error","status_checked_at":"2026-02-20T09:26:12.373Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["c-sharp","chocolatey","extract","extract-files","install","install-script","msi","windows"],"created_at":"2024-07-31T05:00:47.211Z","updated_at":"2026-02-20T12:09:39.294Z","avatar_url":"https://github.com/activescott.png","language":"C#","readme":"# lessmsi\n\n[![Build Status](https://ci.appveyor.com/api/projects/status/github/activescott/lessmsi?branch=master\u0026svg=true)](https://ci.appveyor.com/project/activescott/lessmsi)\n[![Chocolatey Downloads](https://img.shields.io/chocolatey/dt/lessmsi.svg?style=popout)](https://chocolatey.org/packages/lessmsi)\n[![chocolatey](https://img.shields.io/chocolatey/v/lessmsi.svg?maxAge=2592000)](https://chocolatey.org/packages/lessmsi)\n[![GitHub forks](https://img.shields.io/github/forks/activescott/lessmsi.svg)](https://github.com/activescott/lessmsi/network)\n[![GitHub stars](https://img.shields.io/github/stars/activescott/lessmsi.svg)](https://github.com/activescott/lessmsi/stargazers)\n[![tip for next commit](https://tip4commit.com/projects/316.svg)](https://tip4commit.com/projects/316)\n[![GitHub issues](https://img.shields.io/github/issues/activescott/lessmsi.svg)](https://github.com/activescott/lessmsi/issues)\n\nThis is a utility with a graphical user interface and a command line interface that can be used to view and extract the contents of an MSI file.\n\n# Usage\n\nTo extract from the command line:\n\n     lessmsi x \u003cmsiFileName\u003e [\u003coutputDir\u003e]\n\nFor more command line usage see [CommandLine](https://github.com/activescott/lessmsi/wiki/Command-Line).\n\n# Installation\n\nInstall [via Chocolatey](https://chocolatey.org/packages/lessmsi) (or [download a zip](https://github.com/activescott/lessmsi/releases/latest)).\n\n# Features\n\n## Windows Explorer Integration\n\nLessmsi also integrates with Windows Explorer so that you can right-click on a Windows Installer file (.msi file) and select \"Extract Files\" to extract it into a folder right there:\n\n![lessmsi Explorer Integration screenshot](https://raw.github.com/activescott/lessmsi/master/misc/screenshot-explorerintegration.png)\n\nJust select _Preferences_ from the _Edit_ menu to enable (or disable) the explorer integration:\n\n![lessmsi Preferences Dialog screenshot](https://raw.github.com/activescott/lessmsi/master/misc/screenshot-preferences.png)\n\n## GUI\n\nIn addition to allowing you to extract files from the command line and from inside Windows Explorer, lessmsi has a graphical user interface that allows you to view detailed information about any MSI file.\n\n![lessmsi Files Tab screenshot](https://raw.github.com/activescott/lessmsi/master/misc/screenshot-filestab.png)\n\n## MSI Table Viewer\n\nWindows Installer (.msi files) are based on an internal database of tables. Lessmsi features a viewer for those tables. Useful for people who work a lot with installers.\n\n![lessmsi Table Tab screenshot](https://raw.github.com/activescott/lessmsi/master/misc/screenshot-tabletab.png)\n\n# Suggestion? Problem? Comment?\n\nIf you have a problem _please_ submit it by clicking in the [Issue tracker](https://github.com/activescott/lessmsi/issues) and I'll look into it when I can.\n\n# Donate to Support Open Source Contributors of lessmsi\n\nYou can **donate** in two ways:\n\n- [Donate at Tip4Commit](https://tip4commit.com/github/activescott/lessmsi) (Bitcoin only) to fund a general fund. Each new commit to this repository receives a percentage of the available balance.\n- [Donate at IssueHunt](https://issuehunt.io/r/activescott/lessmsi) to deposit your donation as a \"bounty\" against a specific issue or feature request. When a contributor resolves the issue they will earn the deposit for that issue.\n\n# Contributing\n\nPull requests are welcome! Just make sure the Travis-CI build (compile only) passes and you run unit tests and I'll merge your contributions ASAP! The Issues app has an indication of some of the plans.\n\n## You Earn Bitcoin Tips for Contributing!\n\nWe're now tipping committers with bitcoin: [![tip for next commit](http://tip4commit.com/projects/316.svg)](http://tip4commit.com/projects/316)\n\n## You Earn a Bounty for Resolving Issues!\n\nWe're now [registered at IssueHunt](https://issuehunt.io/r/activescott/lessmsi) so contributors can earn the bounty on specific issues that users have deposited funds against.\n\n## Development Environment\n\nTo set up a _free_ Windows development environment that works with Lessmsi:\n\n1. Install [VMWare Fusion Player](https://www.vmware.com/products/fusion.html) (using free \"Player\" version, only needed if developing on MacOS - [homebrew also has a vmware-fusion formula](https://formulae.brew.sh/cask/vmware-fusion))\n2. Download a Virtual Machine for Windows development that Microsoft provides at https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/. These VMs include virtual machine with the latest versions of Windows, the developer tools, SDKs, and samples ready to go.\n3. Install chocolatey as described at https://chocolatey.org/install\n4. Install some things using the \"Command Prompt\" (`cmd` rather than \"Power Shell\"/`ps`) and `winget` here):\n\n```sh\n# install git for windows (this also installs \"bash\" via \"Git Bash\")\n$ winget install git.git\n\n# install chocolatey (this is required to run the MSBuild script and create the chocolatey package that is deployed by CI)\n$ winget install chocolatey\n\n# NOTE: you'll need to close this window and open a new one to get the cpack and git on the path\n```\n\nThen you can switch to bash by typing \"bash\" in the start menu and selecting \"Git Bash\" and follow these steps:\n\n```sh\n# in Git Bash..., generate and ssh key for github:\n$ ssh-keygen\n# follow prompts...\n\n# Print *public* ssh key to console, and register the printed value at github at https://github.com/settings/ssh/new by copying the key printed from the prior step into that box\n$ cat ~/.ssh/id_ed25519.pub\n\n# create directories for code and clone the repo:\n$ mkdir /c/src\n$ cd /c/src\n$ git clone git@github.com:activescott/lessmsi.git\n```\n\nNow I switch back to a \"Developer Command Prompt for Visual Studio\" (i.e. `cmd` with helpful PATH) to do a build since it is more CI-like:\n\n```sh\n$ cd \\src\\lessmsi\\src\n$ .\\build.bat\n\n# I usually start with 0.0.1 when prompted for a version number...\n\n```\n\n## Supported Windows Versions\n\nThe latest versions of Lessmsi should support the oldest version of Windows that Microsoft still officially supports according to https://learn.microsoft.com/en-us/windows/release-health/supported-versions-windows-client\nThat means we need to also target a .NET Framework version that is included in the oldest version Windows that Microsoft still supports which can be found at https://en.wikipedia.org/wiki/.NET_Framework_version_history\n\nFor example as of 2024, Windows 10 is the oldest version of Windows still supported and according to the Wikipedia article, .NET Framework 4.8 is included in Windows 10 (some reasonably current update to Windows 10), so targeting .NET Framework 4.8 is ideal since any reasonably up-to-date version of Windows 10 will have .NET Framework 4.8. Going further, as of April 2024, we see that while .NET Framework 4.8.1 is also available, it is only included in Widnows 11, and not included in any Windows 10 version, so we should *not* target .NET Framework 4.8.1 as some of our Windows 10 users may not yet have 4.8.1 installed.\n\n## Deploying \u0026 Publishing New Versions\n\nNew versions are published to GitHub Releases and Chocolatey via [semantic-release](https://github.com/semantic-release/semantic-release) to consistently release [semver](https://semver.org/)-compatible versions. Only the master branch is deployed.\n\nTo trigger a release just commit (or merge) to the master branch. All commits in master should use the Conventional Commits following [Angular Commit Message Conventions](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines).\n\nThen the CI script in the repo at [/appveyor.yml](https://github.com/activescott/lessmsi/blob/master/appveyor.yml) should build, test the code and if the build \u0026 tests succeed deploy it first to github and then to Chocolatey. Release configuration via semantic-release is in [/release.config.js](https://github.com/activescott/lessmsi/blob/master/release.config.js) and the `semantic-release-*.cmd` files in the [/src/.build](https://github.com/activescott/lessmsi/tree/master/src/.build) folder.\n\n---\n\n_Originally from Scott Willeke's blog http://blogs.pingpoet.com/overflow and http://blog.scott.willeke.com.\nIt was also called Less Msiérables as well as lessmsi._\n\n_Was featured in the book [Windows Developer Power Tools](https://www.oreilly.com/library/view/windows-developer-power/0596527543/) as Less MSIérables._\n\n```\n\n```\n","funding_links":["https://tip4commit.com/github/activescott/lessmsi","https://issuehunt.io/r/activescott/lessmsi"],"categories":["C#","C# #","C\\#","🔧 Packages"],"sub_categories":["⚡ Unpacking"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factivescott%2Flessmsi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Factivescott%2Flessmsi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factivescott%2Flessmsi/lists"}