Commit 1f37a558 authored by Nurlan's avatar Nurlan

vcrun2017/2019/2022: fix msvcp140_2.dll not being replaced on Wine 11+ (eterbug #18979)

parent e9f3d34c
From 8cb6674d1682d5c1e29b2c1cdd8c42811aab0395 Mon Sep 17 00:00:00 2001
From: Nurlan Usenov <suren@etersoft.ru>
Date: Thu, 19 Mar 2026 08:20:24 +0300
Subject: [PATCH] vcrun2017/2019/2022: fix msvcp140_2.dll not being replaced on
Wine 11+
---
src/winetricks | 26 +++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/src/winetricks b/src/winetricks
index cea891e..f99ee57 100755
--- a/src/winetricks
+++ b/src/winetricks
@@ -12916,11 +12916,12 @@ load_vcrun2017()
w_set_winver winxp
fi
- # Setup will refuse to install msvcp140 & ucrtbase because builtin's version number is higher, so manually replace them
+ # Setup will refuse to install msvcp140, msvcp140_2 & ucrtbase because builtin's version number is higher, so manually replace them
# See https://bugs.winehq.org/show_bug.cgi?id=46317 and
# https://bugs.winehq.org/show_bug.cgi?id=57518
w_try_cabextract --directory="${W_TMP}/win32" "${W_CACHE}"/"${W_PACKAGE}"/vc_redist.x86.exe -F 'a10'
w_try_cabextract --directory="${W_SYSTEM32_DLLS}" "${W_TMP}/win32/a10" -F 'msvcp140.dll'
+ w_try_cabextract --directory="${W_SYSTEM32_DLLS}" "${W_TMP}/win32/a10" -F 'msvcp140_2.dll'
w_try_cabextract --directory="${W_SYSTEM32_DLLS}" "${W_TMP}/win32/a10" -F 'ucrtbase.dll'
w_try_cd "${W_CACHE}/${W_PACKAGE}"
@@ -12935,9 +12936,10 @@ load_vcrun2017()
# 2019/08/14: 5b0cbb977f2f5253b1ebe5c9d30edbda35dbd68fb70de7af5faac6423db575b5
# 2024/10/17: 7cf24eba2bd67ea6229b7dd131e06f4e92ebefc06e36fe401cdd227d7ed78264
w_download https://aka.ms/vs/15/release/vc_redist.x64.exe 7cf24eba2bd67ea6229b7dd131e06f4e92ebefc06e36fe401cdd227d7ed78264
- # Also replace 64-bit msvcp140.dll & ucrtbase.dll
+ # Also replace 64-bit msvcp140.dll, msvcp140_2.dll & ucrtbase.dll
w_try_cabextract --directory="${W_TMP}/win64" "${W_CACHE}"/"${W_PACKAGE}"/vc_redist.x64.exe -F 'a10'
w_try_cabextract --directory="${W_SYSTEM64_DLLS}" "${W_TMP}/win64/a10" -F 'msvcp140.dll'
+ w_try_cabextract --directory="${W_SYSTEM64_DLLS}" "${W_TMP}/win64/a10" -F 'msvcp140_2.dll'
w_try_cabextract --directory="${W_SYSTEM64_DLLS}" "${W_TMP}/win64/a10" -F 'ucrtbase.dll'
w_try_ms_installer "${WINE}" vc_redist.x64.exe ${W_OPT_UNATTENDED:+/q}
;;
@@ -12985,10 +12987,11 @@ load_vcrun2019()
w_set_winver winxp
fi
- # Setup will refuse to install msvcp140 because the builtin's version number is higher, so manually replace it
+ # Setup will refuse to install msvcp140 & msvcp140_2 because the builtin's version number is higher, so manually replace them
# See https://bugs.winehq.org/show_bug.cgi?id=57518
w_try_cabextract --directory="${W_TMP}/win32" "${W_CACHE}"/"${W_PACKAGE}"/vc_redist.x86.exe -F 'a10'
w_try_cabextract --directory="${W_SYSTEM32_DLLS}" "${W_TMP}/win32/a10" -F 'msvcp140.dll'
+ w_try_cabextract --directory="${W_SYSTEM32_DLLS}" "${W_TMP}/win32/a10" -F 'msvcp140_2.dll'
w_try_cd "${W_CACHE}"/"${W_PACKAGE}"
w_try_ms_installer "${WINE}" vc_redist.x86.exe ${W_OPT_UNATTENDED:+/q}
@@ -13018,9 +13021,10 @@ load_vcrun2019()
w_download https://aka.ms/vs/16/release/vc_redist.x64.exe 5d9999036f2b3a930f83b7fe3e2186b12e79ae7c007d538f52e3582e986a37c3
- # Also replace 64-bit msvcp140.dll
+ # Also replace 64-bit msvcp140.dll & msvcp140_2.dll
w_try_cabextract --directory="${W_TMP}/win64" "${W_CACHE}"/"${W_PACKAGE}"/vc_redist.x64.exe -F 'a12'
w_try_cabextract --directory="${W_SYSTEM64_DLLS}" "${W_TMP}/win64/a12" -F 'msvcp140.dll'
+ w_try_cabextract --directory="${W_SYSTEM64_DLLS}" "${W_TMP}/win64/a12" -F 'msvcp140_2.dll'
w_try_ms_installer "${WINE}" vc_redist.x64.exe ${W_OPT_UNATTENDED:+/q}
;;
@@ -13089,10 +13093,12 @@ load_vcrun2022()
w_download https://aka.ms/vs/17/release/vc_redist.x86.exe dd1a8be03398367745a87a5e35bebdab00fdad080cf42af0c3f20802d08c25d4
- # Setup will refuse to install msvcp140 because the builtin's version number is higher, so manually replace it
+ # Setup will refuse to install msvcp140 & msvcp140_2 because the builtin's version number is higher, so manually replace them
# See https://bugs.winehq.org/show_bug.cgi?id=57518
w_try_cabextract --directory="${W_TMP}/win32" "${W_CACHE}"/"${W_PACKAGE}"/vc_redist.x86.exe -F 'a10'
- w_try_cabextract --directory="${W_SYSTEM32_DLLS}" "${W_TMP}/win32/a10" -F 'msvcp140.dll'
+ w_try_cabextract --directory="${W_TMP}/win32" "${W_TMP}/win32/a10"
+ w_try mv -f "${W_TMP}/win32/msvcp140.dll_x86" "${W_SYSTEM32_DLLS}/msvcp140.dll"
+ w_try mv -f "${W_TMP}/win32/msvcp140_2.dll_x86" "${W_SYSTEM32_DLLS}/msvcp140_2.dll"
w_try_cd "${W_CACHE}"/"${W_PACKAGE}"
w_try_ms_installer "${WINE}" vc_redist.x86.exe ${W_OPT_UNATTENDED:+/q}
@@ -13113,9 +13119,11 @@ load_vcrun2022()
w_download https://aka.ms/vs/17/release/vc_redist.x64.exe 1821577409c35b2b9505ac833e246376cc68a8262972100444010b57226f0940
- # Also replace 64-bit msvcp140.dll
- w_try_cabextract --directory="${W_TMP}/win64" "${W_CACHE}"/"${W_PACKAGE}"/vc_redist.x64.exe -F 'a11'
- w_try_cabextract --directory="${W_SYSTEM64_DLLS}" "${W_TMP}/win64/a11" -F 'msvcp140.dll'
+ # Also replace 64-bit msvcp140.dll & msvcp140_2.dll
+ w_try_cabextract --directory="${W_TMP}/win64" "${W_CACHE}"/"${W_PACKAGE}"/vc_redist.x64.exe -F 'a12'
+ w_try_cabextract --directory="${W_TMP}/win64" "${W_TMP}/win64/a12"
+ w_try mv -f "${W_TMP}/win64/msvcp140.dll_amd64" "${W_SYSTEM64_DLLS}/msvcp140.dll"
+ w_try mv -f "${W_TMP}/win64/msvcp140_2.dll_amd64" "${W_SYSTEM64_DLLS}/msvcp140_2.dll"
w_try_ms_installer "${WINE}" vc_redist.x64.exe ${W_OPT_UNATTENDED:+/q}
;;
--
2.50.1
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment