Add VC++ Redistributable (x64) as a Windows FMA - #46935
Conversation
Add support for Microsoft Visual C++ Redistributable (x64) via winget: new installer and uninstaller PowerShell scripts that handle the WiX "burn" bootstrapper, a winget input manifest, an app entry in outputs/apps.json, and a detailed outputs/vc-redist-x64/windows.json with version metadata (14.51.36231.0), installer URL, SHA256 and embedded script refs. The uninstall script targets the bundle ProductCode (falls back to the Package Cache) and normalizes /uninstall, /quiet and /norestart handling; the install script runs the bootstrapper with /quiet /norestart and treats reboot codes (3010, 1641) as success.
Add a new VcRedistX64 React SVG component (embedding the icon as a base64 image), include the PNG asset under website/assets/images, and register the icon in the icons index mapping as "microsoft visual c++" so the software list can display the Visual C++ Redistributable x64 icon.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #46935 +/- ##
==========================================
- Coverage 67.02% 67.02% -0.01%
==========================================
Files 2861 2862 +1
Lines 224836 224838 +2
Branches 11738 11596 -142
==========================================
+ Hits 150703 150704 +1
- Misses 60480 60481 +1
Partials 13653 13653
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Introduce a maintained app entry for Microsoft Visual C++ 2013 Redistributable (x64): new winget input, outputs/vc-redist-2013-x64/windows.json with installer metadata, version, install/uninstall script refs, and a 2x icon asset. Also rename the existing vc-redist-x64 input to "Microsoft Visual C++ 2015-2022 Redistributable (x64)" and update apps.json to split the 2013 and 2015-2022 entries and adjust descriptions accordingly.
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.
Tip: disable this comment in your organization's Code Review settings.
|
Lost in the diff? Review this PR in Change Stack to follow the change map from intent to exact ranges. Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (9)
WalkthroughThis PR adds comprehensive support for two Microsoft Visual C++ Redistributable x64 packages (2013 and 2015-2022) to Fleet's maintained-apps system. The implementation spans PowerShell scripts that handle silent installation and uninstallation (including registry-based detection and Package Cache fallback), Winget input manifests that define package metadata and script references, Windows output definitions that embed complete script logic and detection queries, app registry entries that make the packages discoverable, and a frontend icon component with UI integration. Possibly related PRs
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds Windows Fleet Maintained App (FMA) support for Microsoft Visual C++ Redistributables via winget, including metadata outputs and PowerShell install/uninstall automation (WiX “burn” bundle handling).
Changes:
- Added new Windows app entries and output metadata for VC++ Redistributable (2015–2022 x64 and 2013 x64).
- Added winget input manifests plus shared PowerShell install/uninstall scripts (quiet install; uninstall via bundle bootstrapper).
- Added a new frontend icon component and icon mapping entry for Microsoft Visual C++.
Reviewed changes
Copilot reviewed 9 out of 11 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| frontend/pages/SoftwarePage/components/icons/index.ts | Registers the new VC++ icon and maps a software-name key to it |
| frontend/pages/SoftwarePage/components/icons/VcRedistX64.tsx | Adds the VC++ icon asset as an SVG wrapper around an embedded base64 PNG |
| ee/maintained-apps/outputs/vc-redist-x64/windows.json | Adds versioned output metadata + embedded install/uninstall scripts for VC++ 2015–2022 x64 |
| ee/maintained-apps/outputs/vc-redist-2013-x64/windows.json | Adds versioned output metadata + embedded install/uninstall scripts for VC++ 2013 x64 |
| ee/maintained-apps/outputs/apps.json | Adds the two VC++ Redistributable app entries to the global catalog |
| ee/maintained-apps/inputs/winget/vc-redist-x64.json | Adds winget input manifest for VC++ 2015–2022 x64 |
| ee/maintained-apps/inputs/winget/vc-redist-2013-x64.json | Adds winget input manifest for VC++ 2013 x64 |
| ee/maintained-apps/inputs/winget/scripts/vc_redist_x64_uninstall.ps1 | Adds shared uninstall script targeting WiX burn bundle uninstall strings / package cache |
| ee/maintained-apps/inputs/winget/scripts/vc_redist_x64_install.ps1 | Adds shared install script invoking the bootstrapper silently and accepting reboot-required codes |
Comments suppressed due to low confidence (1)
frontend/pages/SoftwarePage/components/icons/VcRedistX64.tsx:1
- Embedding a very large base64 PNG string inside a TSX component will bloat the JS bundle and can noticeably impact page load/perf (especially if this icon component is included in a broadly-imported icons index). Prefer a real SVG path (if available) or move the PNG to a static asset and reference it (or lazy-load it) so it’s not inlined into the bundle.
import * as React from "react";
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "microsoft outlook": MicrosoftOutlook, | ||
| "microsoft powerpoint": MicrosoftPowerPoint, | ||
| "microsoft teams": Teams, | ||
| "microsoft visual c++": VcRedistX64, |
| import type { SVGProps } from "react"; | ||
|
|
||
| const VcRedistX64 = (props: SVGProps<SVGSVGElement>) => ( | ||
| <svg xmlns="http://www.w3.org/2000/svg" width={32} height={32} {...props}> |
| @@ -0,0 +1,38 @@ | |||
| # Learn more about .exe install scripts: | |||
| # http://fleetdm.com/learn-more-about/exe-install-scripts | |||
| # the bundle by its ProductCode (injected by the ingester) and fall back to the | ||
| # cached bootstrapper in the Package Cache. | ||
|
|
||
| $productCode = ${PACKAGE_ID} |
| { | ||
| "name": "Microsoft Visual C++ 2013 Redistributable (x64)", | ||
| "slug": "vc-redist-2013-x64/windows", | ||
| "platform": "windows", | ||
| "unique_identifier": "Microsoft Visual C++ 2013 Redistributable (x64)", | ||
| "description": "Microsoft Visual C++ 2013 Redistributable (x64) installs the runtime components of the Visual C++ libraries required to run 64-bit applications built with Visual C++ 2013." | ||
| }, | ||
| { | ||
| "name": "Microsoft Visual C++ 2015-2022 Redistributable (x64)", | ||
| "slug": "vc-redist-x64/windows", | ||
| "platform": "windows", | ||
| "unique_identifier": "Microsoft Visual C++ 2015-2022 Redistributable (x64)", | ||
| "description": "Microsoft Visual C++ 2015-2022 Redistributable (x64) installs the runtime components of the Visual C++ libraries required to run 64-bit applications built with Visual C++ 2015, 2017, 2019, and 2022." | ||
| }, |
Add support for Microsoft Visual C++ Redistributable (x64) via winget: new installer and uninstaller PowerShell scripts that handle the WiX "burn" bootstrapper, a winget input manifest, an app entry in outputs/apps.json, and a detailed outputs/vc-redist-x64/windows.json with version metadata (14.51.36231.0), installer URL, SHA256 and embedded script refs. The uninstall script targets the bundle ProductCode (falls back to the Package Cache) and normalizes /uninstall, /quiet and /norestart handling; the install script runs the bootstrapper with /quiet /norestart and treats reboot codes (3010, 1641) as success.
Summary by CodeRabbit