View Issue Details

IDProjectCategoryView StatusLast Update
0004875The Dark ModTDM Installerpublic16.11.2019 05:21
Reporterstgatilov Assigned Tostgatilov  
PriorityhighSeverityminorReproducibilityN/A
Status resolvedResolutionfixed 
OSWindows 
Product VersionTDM 2.06 
Target VersionTDM 2.07Fixed in VersionTDM 2.07 
Summary0004875: Update and Improve VCRedist installation
DescriptionRight now tdm_update tries to install VCRedist packages automatically, without any notice to user.
The VCRedist installer requires admin rights, so it usually shows UAC dialog asking for permissions. This UAC dialog silently closes in 2 minutes if nothing happens. Given that this dialog pops up at the very end of lengthy installation process, there is big probability that user is drinking coffee when it comes, so he does not notice it and it is not installed.

The plan is to make VCRedist installation more visible to user:
1. Separate installation code into two: detection (whether it is necessary) and installation itself.
2. Create a separate update step for VCRedist installation (which will be run only if necessary). Set PostUpdateCleanup is a wrong place =)
3. Check error code of VCRedist process after exit.
4. Show message box just before installation explaining what is going to be installed and why it needs admin rights. This makes sure that user is near computer when UAC dialog pops up.
5. Show message box with results of installation. This is especially important on fail: then we can explain that the user has to run the files himself to complete installation.

And finally:
0. Update registry keys and filenames for 2.07 --- now we are using MSVC2017 instead of MSVC2013.
TagsNo tags attached.

Relationships

related to 0005062 resolvedstgatilov Disable VCRedist installation step in updater 

Activities

stgatilov

stgatilov

28.07.2018 08:25

administrator   ~0010731

Last edited: 01.08.2018 02:23

Committed in svn rev 7600 (points 1, 2, 4, 5).
UPDATE: fixed bug in svn rev 7613.

Now VC redistributable installation is a separate step. When it runs, it first checks whether 32-bit and 64-bit packages should be installed (depending on OS and registry keys). If none are needed (e.g. packages are already present), then the whole step is silently skipped (although some GUI messages remain).

If it is clear that vcredist has to be installed, then a message box is shown, waiting for user confirmation. It explains that redist packages will be installed, probably requiring admin rights. After user clicks OK, the redist packages are run sequentally (each of them triggers UAC dialog, unless tdm_update was started under admin).

After installers terminate, we check once again if installing VC redist-s is still necessary --- it can be so only if installer failed. In such case we display a warning (another message box) which says that VC redist failed to install and user has to install it manually. After the check, installation process continues as usual.

On the frontend side, I have updated messages/titles/progress bar for the new step in Windows GUI installer. I did not change console updater because:
1. On Linux it will silently go through the VC redist installation step, so messages needed.
2. On Windows it will install VC redist if necessary. And in such case it will display various messages anyway. Also, console updater is rarely used on Windows, and if it is, then it cannot be run under user anyway, so vcredist should install without any issues.

P.S. Point 3 is not needed.
Point 0 (update registry keys for MSVC2017/2.07 runtime) is still TODO.

stgatilov

stgatilov

01.08.2018 02:43

administrator   ~0010736

Committed new change in svn rev 7614.

Now tdm_update checks registry keys for MSVC2017. So it won't work correctly with TDM 2.06 anymore (which used MSVC2013). On the other hand, now it should work correctly for the future TDM 2.07 =)
stgatilov

stgatilov

01.08.2018 02:45

administrator   ~0010737

I resolve this issue, but we should pay close attention to VCRedist installation during 2.07 beta.

Issue History

Date Modified Username Field Change
27.07.2018 04:01 stgatilov New Issue
27.07.2018 04:01 stgatilov Status new => assigned
27.07.2018 04:01 stgatilov Assigned To => stgatilov
28.07.2018 08:25 stgatilov Note Added: 0010731
01.08.2018 02:23 stgatilov Note Edited: 0010731
01.08.2018 02:43 stgatilov Note Added: 0010736
01.08.2018 02:45 stgatilov Note Added: 0010737
01.08.2018 02:45 stgatilov Status assigned => resolved
01.08.2018 02:45 stgatilov Resolution open => fixed
01.08.2018 02:45 stgatilov Fixed in Version => TDM 2.07
16.11.2019 05:21 stgatilov Relationship added related to 0005062
19.05.2021 05:34 stgatilov Category TDM Updater => TDM Installer