├── .github └── workflows │ └── package.yaml ├── .gitignore ├── Download.ps1 ├── Icon.ico ├── LICENSE.md ├── Preview └── Preview.png ├── README-CN.md ├── README.md ├── VCRedist.csv └── VCRedistSetup.iss /.github/workflows/package.yaml: -------------------------------------------------------------------------------- 1 | name: Package 2 | 3 | on: 4 | push: 5 | tags: 6 | - "v*.*.*" 7 | 8 | permissions: 9 | contents: write 10 | 11 | jobs: 12 | package: 13 | runs-on: windows-latest 14 | steps: 15 | - name: Checkout 16 | uses: actions/checkout@v4 17 | 18 | - name: Download 19 | run: ./Download.ps1 20 | 21 | - name: Package 22 | uses: Minionguyjpro/Inno-Setup-Action@v1.2.2 23 | with: 24 | path: VCRedistSetup.iss 25 | options: /O+ /OOutput /FVCRedistSetup 26 | 27 | - name: Release 28 | uses: softprops/action-gh-release@v2 29 | with: 30 | fail_on_unmatched_files: true 31 | files: Output/VCRedistSetup.exe 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | VCRedist/ 2 | Output/ 3 | *.exe 4 | -------------------------------------------------------------------------------- /Download.ps1: -------------------------------------------------------------------------------- 1 | # Download Visual C++ Redistributable 80 to 140 2 | 3 | $vcredistPath = Join-Path -Path $PSScriptRoot -ChildPath VCRedist 4 | if (-not (Test-Path -Path $vcredistPath)) { 5 | New-Item -Path $vcredistPath -ItemType Directory | Out-Null 6 | } 7 | 8 | $webClient = New-Object -TypeName System.Net.WebClient 9 | $csvPath = Join-Path -Path $PSScriptRoot -ChildPath VCRedist.csv 10 | Import-Csv -Path $csvPath | ForEach-Object { 11 | $url = $_.Url 12 | $name = $_.Name 13 | $hash = $_.Hash 14 | $downloadPath = Join-Path -Path $vcredistPath -ChildPath $name 15 | if (-not (Test-Path -Path $downloadPath)) { 16 | Write-Output -InputObject "Downloading $name" 17 | $webClient.DownloadFile($url, $downloadPath) 18 | $actualHash = Get-FileHash -Path $downloadPath -Algorithm SHA256 19 | if ($actualHash.Hash -ne $hash) { 20 | Write-Output -InputObject "Hash mismatch for $name, removing file" 21 | Remove-Item -Path $downloadPath 22 | } 23 | } else { 24 | Write-Output -InputObject "Skipping $name, already exists" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YukiIsait/VCRedistSetup/12039360cdbbd0e2d9c123e982220fc66f82d1fb/Icon.ico -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | ===================== 3 | 4 | **Copyright © 2024 YukiIsait** 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 7 | 8 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 9 | 10 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 11 | -------------------------------------------------------------------------------- /Preview/Preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YukiIsait/VCRedistSetup/12039360cdbbd0e2d9c123e982220fc66f82d1fb/Preview/Preview.png -------------------------------------------------------------------------------- /README-CN.md: -------------------------------------------------------------------------------- 1 | # VCRedistSetup 2 | 3 | 🌍 **[English](README.md) | [简体中文](README-CN.md)** 4 | 5 | 一个 Microsoft Visual C++ 可再发行程序包的集成包,可以轻松安装从 80 到 140 之间任何版本。 6 | 7 | ## 预览图片 8 | 9 | ![Preview](Preview/Preview.png) 10 | 11 | ## 下载链接 12 | 13 | - [GitHub Releases](https://github.com/YukiIsait/VCRedistSetup/releases/latest) 14 | - [蓝奏云网盘](https://wwjz.lanzoul.com/b0aw9bzib) 提取码: `YUKI` 文件: `VCRedistSetup.exe` 15 | 16 | ## 开源许可 17 | 18 | 此项目根据 MIT 许可证授权,详见 [LICENSE](LICENSE.md) 文件。 19 | 20 | ## 官方链接 21 | 22 | - [Microsoft Visual C++ 可再发行程序包最新支持的下载](https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist) 23 | - [Visual C++ 新增功能 (2003 - 2015)](https://learn.microsoft.com/zh-cn/cpp/porting/visual-cpp-what-s-new-2003-through-2015) 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # VCRedistSetup 2 | 3 | 🌍 **[简体中文](README-CN.md) | [English](README.md)** 4 | 5 | An integrated package of Microsoft Visual C++ Redistributable allows you to easily install any version between 80 and 140. 6 | 7 | ## Preview 8 | 9 | ![Preview](Preview/Preview.png) 10 | 11 | ## Download 12 | 13 | - [GitHub Releases](https://github.com/YukiIsait/VCRedistSetup/releases/latest) 14 | - [Lanzou Cloud](https://wwjz.lanzoul.com/b0aw9bzib) Password: `YUKI` File: `VCRedistSetup.exe` 15 | 16 | ## License 17 | 18 | This project is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details. 19 | 20 | ## Official links 21 | 22 | - [Microsoft Visual C++ Redistributable latest supported downloads](https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist) 23 | - [Visual C++ What's New 2003 through 2015](https://learn.microsoft.com/zh-cn/cpp/porting/visual-cpp-what-s-new-2003-through-2015) 24 | -------------------------------------------------------------------------------- /VCRedist.csv: -------------------------------------------------------------------------------- 1 | Name,Url,Hash 2 | vcredist_80_2005_x64.exe,https://download.microsoft.com/download/8/B/4/8B42259F-5D70-43F4-AC2E-4B208FD8D66A/vcredist_x64.exe,4487570bd86e2e1aac29db2a1d0a91eb63361fcaac570808eb327cd4e0e2240d 3 | vcredist_80_2005_x86.exe,https://download.microsoft.com/download/8/B/4/8B42259F-5D70-43F4-AC2E-4B208FD8D66A/vcredist_x86.exe,8648c5fc29c44b9112fe52f9a33f80e7fc42d10f3b5b42b2121542a13e44adfd 4 | vcredist_90_2008_x64.exe,https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x64.exe,c5e273a4a16ab4d5471e91c7477719a2f45ddadb76c7f98a38fa5074a6838654 5 | vcredist_90_2008_x86.exe,https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x86.exe,8742bcbf24ef328a72d2a27b693cc7071e38d3bb4b9b44dec42aa3d2c8d61d92 6 | vcredist_100_2010_x64.exe,https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x64.exe,f3b7a76d84d23f91957aa18456a14b4e90609e4ce8194c5653384ed38dada6f3 7 | vcredist_100_2010_x86.exe,https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x86.exe,99dce3c841cc6028560830f7866c9ce2928c98cf3256892ef8e6cf755147b0d8 8 | vcredist_110_2012_x64.exe,https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe,681be3e5ba9fd3da02c09d7e565adfa078640ed66a0d58583efad2c1e3cc4064 9 | vcredist_110_2012_x86.exe,https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe,b924ad8062eaf4e70437c8be50fa612162795ff0839479546ce907ffa8d6e386 10 | vcredist_120_2013_x64.exe,https://download.visualstudio.microsoft.com/download/pr/10912041/cee5d6bca2ddbcd039da727bf4acb48a/vcredist_x64.exe,a4bba7701e355ae29c403431f871a537897c363e215cafe706615e270984f17c 11 | vcredist_120_2013_x86.exe,https://download.visualstudio.microsoft.com/download/pr/10912113/5da66ddebb0ad32ebd4b922fd82e8e25/vcredist_x86.exe,53b605d1100ab0a88b867447bbf9274b5938125024ba01f5105a9e178a3dcdbd 12 | vcredist_140_2015-2022_x64.exe,https://download.visualstudio.microsoft.com/download/pr/c7dac50a-e3e8-40f6-bbb2-9cc4e3dfcabe/1821577409C35B2B9505AC833E246376CC68A8262972100444010B57226F0940/vc_redist.x64.exe,1821577409c35b2b9505ac833e246376cc68a8262972100444010b57226f0940 13 | vcredist_140_2015-2022_x86.exe,https://download.visualstudio.microsoft.com/download/pr/5319f718-2a84-4aff-86be-8dbdefd92ca1/DD1A8BE03398367745A87A5E35BEBDAB00FDAD080CF42AF0C3F20802D08C25D4/vc_redist.x86.exe,dd1a8be03398367745a87a5e35bebdab00fdad080cf42af0c3f20802d08c25d4 14 | -------------------------------------------------------------------------------- /VCRedistSetup.iss: -------------------------------------------------------------------------------- 1 | #define AppId "{7E2EDE57-7806-4829-AC20-3A571AD4E623}" 2 | #define AppName "Microsoft Visual C++ Redistributable" 3 | #define AppExeName "VCRedistSetup" 4 | #define AppVersion "14.42.34433.0" 5 | #define AppPublisher "Microsoft Corporation" 6 | #define AppCopyright "Copyright (c) Microsoft Corporation. All rights reserved." 7 | 8 | [Setup] 9 | AppId={{#AppId} 10 | AppName={#AppName} 11 | AppVersion={#AppVersion} 12 | AppVerName={#AppName} 13 | AppPublisher={#AppPublisher} 14 | AppCopyright={#AppCopyright} 15 | VersionInfoVersion={#AppVersion} 16 | OutputBaseFilename={#AppExeName} 17 | CreateAppDir=no 18 | ArchitecturesInstallIn64BitMode=x64compatible 19 | PrivilegesRequired=admin 20 | Compression=lzma2/max 21 | SolidCompression=yes 22 | WizardStyle=classic 23 | AlwaysRestart=yes 24 | Uninstallable=no 25 | SetupIconFile=Icon.ico 26 | 27 | [Languages] 28 | Name: "english"; MessagesFile: "compiler:Default.isl" 29 | 30 | [Types] 31 | Name: "Full"; Description: "Full" 32 | Name: "Custom"; Description: "Custom"; Flags: iscustom 33 | Name: "AMD64"; Description: "AMD64"; Check: Is64BitInstallMode 34 | Name: "I386"; Description: "I386" 35 | 36 | [Components] 37 | Name: "x64_140"; Description: "Microsoft Visual C++ 2015-2022 Redistributable (x64)"; Types: Full AMD64; Check: Is64BitInstallMode 38 | Name: "x86_140"; Description: "Microsoft Visual C++ 2015-2022 Redistributable (x86)"; Types: Full I386 39 | Name: "x64_120"; Description: "Microsoft Visual C++ 2013 Redistributable (x64)"; Types: Full AMD64; Check: Is64BitInstallMode 40 | Name: "x86_120"; Description: "Microsoft Visual C++ 2013 Redistributable (x86)"; Types: Full I386 41 | Name: "x64_110"; Description: "Microsoft Visual C++ 2012 Redistributable (x64)"; Types: Full AMD64; Check: Is64BitInstallMode 42 | Name: "x86_110"; Description: "Microsoft Visual C++ 2012 Redistributable (x86)"; Types: Full I386 43 | Name: "x64_100"; Description: "Microsoft Visual C++ 2010 Redistributable (x64)"; Types: Full AMD64; Check: Is64BitInstallMode 44 | Name: "x86_100"; Description: "Microsoft Visual C++ 2010 Redistributable (x86)"; Types: Full I386 45 | Name: "x64_90"; Description: "Microsoft Visual C++ 2008 Redistributable (x64)"; Types: Full AMD64; Check: Is64BitInstallMode 46 | Name: "x86_90"; Description: "Microsoft Visual C++ 2008 Redistributable (x86)"; Types: Full I386 47 | Name: "x64_80"; Description: "Microsoft Visual C++ 2005 Redistributable (x64)"; Types: Full AMD64; Check: Is64BitInstallMode 48 | Name: "x86_80"; Description: "Microsoft Visual C++ 2005 Redistributable (x86)"; Types: Full I386 49 | 50 | [Files] 51 | Source: "VCRedist\vcredist_80_2005_x64.exe"; DestDir: "{tmp}"; Flags: ignoreversion; Components: x64_80 52 | Source: "VCRedist\vcredist_90_2008_x64.exe"; DestDir: "{tmp}"; Flags: ignoreversion; Components: x64_90 53 | Source: "VCRedist\vcredist_100_2010_x64.exe"; DestDir: "{tmp}"; Flags: ignoreversion; Components: x64_100 54 | Source: "VCRedist\vcredist_110_2012_x64.exe"; DestDir: "{tmp}"; Flags: ignoreversion; Components: x64_110 55 | Source: "VCRedist\vcredist_120_2013_x64.exe"; DestDir: "{tmp}"; Flags: ignoreversion; Components: x64_120 56 | Source: "VCRedist\vcredist_140_2015-2022_x64.exe"; DestDir: "{tmp}"; Flags: ignoreversion; Components: x64_140 57 | 58 | Source: "VCRedist\vcredist_80_2005_x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion; Components: x86_80 59 | Source: "VCRedist\vcredist_90_2008_x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion; Components: x86_90 60 | Source: "VCRedist\vcredist_100_2010_x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion; Components: x86_100 61 | Source: "VCRedist\vcredist_110_2012_x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion; Components: x86_110 62 | Source: "VCRedist\vcredist_120_2013_x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion; Components: x86_120 63 | Source: "VCRedist\vcredist_140_2015-2022_x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion; Components: x86_140 64 | 65 | [Run] 66 | Filename: "{tmp}\vcredist_80_2005_x64.exe"; Parameters: "/q"; Flags: runhidden; Components: x64_80; BeforeInstall: SetMarqueeProgress(True); AfterInstall: SetMarqueeProgress(False) 67 | Filename: "{tmp}\vcredist_90_2008_x64.exe"; Parameters: "/qb"; Flags: runhidden; Components: x64_90; BeforeInstall: SetMarqueeProgress(True); AfterInstall: SetMarqueeProgress(False) 68 | Filename: "{tmp}\vcredist_100_2010_x64.exe"; Parameters: "/passive /norestart"; Flags: runhidden; Components: x64_100; BeforeInstall: SetMarqueeProgress(True); AfterInstall: SetMarqueeProgress(False) 69 | Filename: "{tmp}\vcredist_110_2012_x64.exe"; Parameters: "/passive /norestart"; Flags: runhidden; Components: x64_110; BeforeInstall: SetMarqueeProgress(True); AfterInstall: SetMarqueeProgress(False) 70 | Filename: "{tmp}\vcredist_120_2013_x64.exe"; Parameters: "/passive /norestart"; Flags: runhidden; Components: x64_120; BeforeInstall: SetMarqueeProgress(True); AfterInstall: SetMarqueeProgress(False) 71 | Filename: "{tmp}\vcredist_140_2015-2022_x64.exe"; Parameters: "/passive /norestart"; Flags: runhidden; Components: x64_140; BeforeInstall: SetMarqueeProgress(True); AfterInstall: SetMarqueeProgress(False) 72 | 73 | Filename: "{tmp}\vcredist_80_2005_x86.exe"; Parameters: "/q"; Flags: runhidden; Components: x86_80; BeforeInstall: SetMarqueeProgress(True); AfterInstall: SetMarqueeProgress(False) 74 | Filename: "{tmp}\vcredist_90_2008_x86.exe"; Parameters: "/qb"; Flags: runhidden; Components: x86_90; BeforeInstall: SetMarqueeProgress(True); AfterInstall: SetMarqueeProgress(False) 75 | Filename: "{tmp}\vcredist_100_2010_x86.exe"; Parameters: "/passive /norestart"; Flags: runhidden; Components: x86_100; BeforeInstall: SetMarqueeProgress(True); AfterInstall: SetMarqueeProgress(False) 76 | Filename: "{tmp}\vcredist_110_2012_x86.exe"; Parameters: "/passive /norestart"; Flags: runhidden; Components: x86_110; BeforeInstall: SetMarqueeProgress(True); AfterInstall: SetMarqueeProgress(False) 77 | Filename: "{tmp}\vcredist_120_2013_x86.exe"; Parameters: "/passive /norestart"; Flags: runhidden; Components: x86_120; BeforeInstall: SetMarqueeProgress(True); AfterInstall: SetMarqueeProgress(False) 78 | Filename: "{tmp}\vcredist_140_2015-2022_x86.exe"; Parameters: "/passive /norestart"; Flags: runhidden; Components: x86_140; BeforeInstall: SetMarqueeProgress(True); AfterInstall: SetMarqueeProgress(False) 79 | 80 | [Code] 81 | procedure SetMarqueeProgress(Marquee: Boolean); 82 | begin 83 | if Marquee then 84 | WizardForm.ProgressGauge.Style := npbstMarquee 85 | else 86 | WizardForm.ProgressGauge.Style := npbstNormal 87 | end; 88 | --------------------------------------------------------------------------------