http://bugs.winehq.org/show_bug.cgi?id=35979
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED URL| |http://store.steampowered.c | |om/app/238430 CC| |focht@gmx.net Resolution|--- |DUPLICATE Summary|Contagion (Steam) - |Contagion (Steam) - |Everytime the game is |Microsoft Visual C++ 2012 |launched, Microsoft VC |Redistributable Package |Redist Package is |installer started each time |installed. |the game is launched
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
It's a common problem for various Stream games if the requested prerequisite is not installable.
First, you check the game manifest to get the list of prerequisites. The manifest is located in 'SteamApps' folder and named 'appmanifest_<steamappid>.acf':
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Steam/SteamApps
$ cat appmanifest_238430.acf
"AppState" { "appid" "238430" "Universe" "1" "name" "Contagion" ... "InstallScripts" { "0" "_CommonRedist\vcredist\2005\installscript.vdf" "1" "_CommonRedist\vcredist\2010\installscript.vdf" "2" "_CommonRedist\vcredist\2012\installscript.vdf" "3" "_CommonRedist\DirectX\Jun2010\installscript.vdf" "4" "_CommonRedist\PhysX\9.12.1031\installscript.vdf" "5" "contagion\installscript.vdf" } } --- snip ---
This basically tells the game wants DX runtime 2010, PhysX 9.12 and three different VC++ runtimes: 2005, 2010, 2012
The VC++ distributable packages for the game are stored here (along with the Steam install scripts):
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Steam/SteamApps/common/Contagion/_CommonRedist/vcredist
$ ls 2005 2010 2012 --- snip ---
Content of 'installscript.vdf' for VC++ 2012 runtime:
--- snip --- "installscript" { "Run Process" { "x86 Update 2" { "HasRunKey" "HKEY_LOCAL_MACHINE\Software\Valve\Steam\Apps\CommonRedist\vcredist\2012" "process 1" "%INSTALLDIR%\_CommonRedist\vcredist\2012\vcredist_x86.exe" "command 1" "/quiet /norestart" "NoCleanUp" "1" } "x64 Update 2" { "HasRunKey" "HKEY_LOCAL_MACHINE\Software\Valve\Steam\Apps\CommonRedist\vcredist\2012" "process 1" "%INSTALLDIR%\_CommonRedist\vcredist\2012\vcredist_x64.exe" "command 1" "/quiet /norestart" "NoCleanUp" "1" "Requirement_OS" { "Is64BitWindows" "1" } } } } "kvsignatures" { "installscript" "129f2349e074c990e449eb30f65194fc13455a6e0c02be358ea390e703cbb0c9da76891ef3b75c028fa93e32697ae5f80b4f79cf43ffd203af3d26219eeaece84e8d3ec40fbfa94614ee6e0a694e9485b0dd6145aeeb1ca4b14a305af00c10fea44ff0248ae3dd9a9421d0a074e55d9c37427d4299a2faed031012a96d9783fe" } --- snip ---
This also highlights the way Steam checks if the prerequisite is already present/installed -> registry keys.
For each successful prerequisite installer run a registry key will be created, denoting this (see install script). Prerequisite install keys are either located within game appid registry subkey or in global 'common' keys.
With all VC++ runtimes successfully installed the relevant part of registry should look like this:
--- snip --- REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Valve\Steam\Apps\CommonRedist\vcredist]
[HKEY_LOCAL_MACHINE\Software\Valve\Steam\Apps\CommonRedist\vcredist\2005] "x86 sp1"=dword:00000001
[HKEY_LOCAL_MACHINE\Software\Valve\Steam\Apps\CommonRedist\vcredist\2010] "x86"=dword:00000001
[HKEY_LOCAL_MACHINE\Software\Valve\Steam\Apps\CommonRedist\vcredist\2012] "x86 Update 2"=dword:00000001 --- snip ---
Unfortunately the VC++ 2012 redist installer can't be installed with Wine (bug 17273) hence the registry key will not be present.
You can fake successful install by putting the registry keys manually. This usually works because Wine's VC++ runtime replacements works well.
Anyway, still a dupe of bug 17273
Regards
*** This bug has been marked as a duplicate of bug 17273 ***