Application Runtime Checks
Posted: Wed Nov 18, 2015 7:49 am
Hello Francesco,
while testing our setup project on various Windows versions I noticed some conspicuities
Your script for checking the target system for .NET Framework 4.5.2 checks the Value of HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full - Version.
In case of Windows 8.1
if Variable DOTNET452_X86X64 Greater Than (Version) 4.5.51649
The problem here is the 51649.
The sources you are using will install a .NET Framework which puts the value 4.5.51641 here.
That means that on system needing to restart the setup after a reboot will check this value again, determine that the present version number is lower and do the install again.
And again...
In addition your comparer does a string comparison when "one variable contains a non-integer value" (quoted from chm, which does not contain the "If greater than (Version)", which results in 4.5.51649 to be greater than 4.5.512
MSDN recommends to compare the vaules in HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full - Release:
https://msdn.microsoft.com/de-de/librar ... 8(v=vs.110).aspx
Regards
while testing our setup project on various Windows versions I noticed some conspicuities
Your script for checking the target system for .NET Framework 4.5.2 checks the Value of HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full - Version.
In case of Windows 8.1
if Variable DOTNET452_X86X64 Greater Than (Version) 4.5.51649
The problem here is the 51649.
The sources you are using will install a .NET Framework which puts the value 4.5.51641 here.
That means that on system needing to restart the setup after a reboot will check this value again, determine that the present version number is lower and do the install again.
And again...
In addition your comparer does a string comparison when "one variable contains a non-integer value" (quoted from chm, which does not contain the "If greater than (Version)", which results in 4.5.51649 to be greater than 4.5.512
MSDN recommends to compare the vaules in HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full - Release:
https://msdn.microsoft.com/de-de/librar ... 8(v=vs.110).aspx
Regards