38
« on: April 03, 2012, 10:53 AM »
The problem is that there was another file at:
C:\Users\sba\AppData\Local\VirtualStore\Program Files (x86)\ScreenshotCaptor\ScreenshotCaptor.dcupdate
that contained 2.103.01
This file was probably created by either:
- installing ScreenShotCaptor without using "run as administrator"
- running ScreenShotCaptor as a non-admin user just after installation
In either case, the file virtualization mechanism (introduced in Vista) has kicked in and redirected the attempt to write to C:\Program Files (x86)\ScreenshotCaptor (which a non-admin user is not allowed to do).
After I have deleted C:\Users\sba\AppData\Local\VirtualStore\Program Files (x86)\ScreenshotCaptor and relaunched ScreenShotCaptor, DcUpdater reports the correct version, BUT the file C:\Users\sba\AppData\Local\VirtualStore\Program Files (x86)\ScreenshotCaptor\ScreenshotCaptor.dcupdate has been recreated.
Unfortunately I fear that at the next update ScreenShotCaptor might update C:\Users\sba\AppData\Local\VirtualStore\Program Files (x86)\ScreenshotCaptor\ScreenshotCaptor.dcupdate, leaving C:\Program Files (x86)\ScreenshotCaptor\ScreenshotCaptor.dcupdate unchanged, causing another version discrepancy.
Another explanation would be that running ScreenShotCaptor as an admin user will populate C:\Program Files (x86)\ScreenshotCaptor\ScreenshotCaptor.dcupdate, whereas running an update check from within ScreenShotCaptor running as non-admin user will cause DcUpdater to look at C:\Users\sba\AppData\Local\VirtualStore\Program Files (x86)\ScreenshotCaptor\ScreenshotCaptor.dcupdate.
Get the picture?
IMVHO running an app should not populate a per-user file containing version information. Instead, the app's installer should populate a system-wide file containing version information. But I'm just wearing my software developer hat on here ;-)
P.S. Without Process Monitor I would not have been able to troubleshoot this.