https://bugs.winehq.org/show_bug.cgi?id=46317
Bug ID: 46317 Summary: ucrtbase doesn't install when running vcrun2015/vc_redist.x64.exe Product: Wine Version: 4.0-rc1 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: minor Priority: P2 Component: ucrtbase Assignee: wine-bugs@winehq.org Reporter: brendan@redmandi.com Distribution: ---
Created attachment 63050 --> https://bugs.winehq.org/attachment.cgi?id=63050 Change ucrtbase.dll version to 10.0.1.0
Install of ucrtbase fails when running vc_redist.x64.exe (to install Visual C++ Redistributable for Visual Studio 2015).
This is because of the following condition: 002b:trace:msi:calculate_install_state keeping L"ucrtbase.dll" (new version L"10.0.10137.0" old version 10.0.14393.2247)
I can see version 10.0.14393.2247 was introduced in commit 1622abbb081c1afe052d16769898976e90f98062 as a result of bug #45928. But the only requirement I could find in this bug is for the ucrtbase version to be greater than 10.0.x.
Therefore I was able to resolve this by changing the version in dlls/ucrtbase/version.rc to 10.0.1.0. Proposed patch is attached.
After applying this patch the output for the above condition is: 002b:trace:msi:calculate_install_state overwriting L"ucrtbase.dll" (new version L"10.0.10137.0" old version 10.0.1.0)
Note that winetricks is not impacted by this as it manually installs ucrtbase.dll.
Also note that the prefix must be configured as WinXP otherwise install fails with this condition: 0054:trace:msi:msi_get_property returning L"601" for property L"VersionNT" 0054:trace:msi:COND_GetString Got identifier L"502" 0054:trace:msi:MSI_EvaluateConditionW 0 <- L"(VersionNT = 501) OR (VersionNT = 502)"