On 13.02.2010 11:55, Adrian Buehlmann wrote:
> I finally got a new mercurial msi installer [1] working on a clean Windows XP 
> x86 SP3
> (running in a VirtualBox VM) by installing
> 
>     Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)
> 
> as available for download at
> 
> http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en
> 
> If this package is not installed, you will see the following when
> trying to run hg:
> 
> C:\Program Files\Mercurial>hg version
> The system cannot execute the specified program.
> 
> Dependency walker [2] will report:
> 
> '''
> Error: The Side-by-Side configuration information in "c:\program 
> files\mercurial\HG.EXE"
> contains errors. This application has failed to start because the application 
> configuration
> is incorrect. Reinstalling the application may fix this problem (14001).
> '''
> 
> ("Reinstalling the application" won't help here).
> 
> Steve and (to some extent) I are currently looking into how to best fix this 
> in
> thg-winbuild.
> 
> The merge modules contained in the current msi builds produced by thg-winbuild
> apparently don't work for Windows XP.
> 
> On clean Windows 7 Ultimate x64 and x86 the msi install is fine.
> 
> [1] http://bitbucket.org/tortoisehg/thg-winbuild, revision 0cdda5ce2ad5
> [2] C:\Program Files (x86)\Microsoft Visual Studio 
> 8\Common7\Tools\Bin\Depends.Exe
> 

Did some further experimenting:

(1)
Starting with a clean Win XP x86, "mercurial-unstable-1.4.3+98-41d0ed2c79df.msi"
installed a "x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_6f74963e"
in "C:\WINDOWS\WinSxS" but touches nothing in "C:\WINDOWS\WinSxS\Policies".

(2)
Staring with a clean Win XP x86 again, "vcredist_x86.exe"
installed a "x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_6f74963e"
"C:\WINDOWS\WinSxS" (plus other things I won't mention here) AND
"x86_policy.9.0.Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_x-ww_b7353f75" in
"C:\WINDOWS\WinSxS\Policies".

As we know, combining (2) with (1) leads to a working hg.exe.

I bet this is caused by the additional entry in Policies.

I bet we need to merge the policy merge module as well.

I'm going to try doing that on thg-winbuild.


----------------------------------------
Some possibly relevant pointers and info
----------------------------------------

Using
http://www.google.com/search?hl=en&source=hp&q=policy+merge+module&aq=0&aqi=g1&oq=policy+merge

I read
http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/be46e4af-980a-4425-b903-9f7e196b19f8

Which contains:

'''
The policy msm contains the redirection that makes everything work. It's 
essentially a version
redirection policy file rather like a publisher policy assembly in the GAC. The 
internal policy
file says something like "if a a requestor comes along with a requirement in 
his manifest for
versions 8.0.50727.42 to 8.0.50727.762 then redirect them to this Dll". So if 
you don't install
the policy file it's likely that (say) VS 2005 RTM code files will fail if you 
install the SP1
CRT merge module.
'''

http://blogs.msdn.com/astebner/archive/2007/02/13/building-an-msi-using-wix-v3-0-that-includes-the-vc-8-0-runtime-merge-modules.aspx

"Building an MSI using WiX v3.0 that includes the VC 8.0 runtime merge modules"
in "Aaron Stebner's WebLog"

with a comment from AlexPerry of Wednesday, January 27, 2010 (full quote):

'''
Realise that this post was a long time ago but it was very useful to me 
recently (only just moved to
vs2008 from 2005) - However there is an issue in not merging the policy files 
for the CRT.

By default vc90 (version in vs2008) will request the oldest version of CRT 
which is compatible for
the widest coverage (on my system CRT version requested is 9.0.21022.8) - 
however the version in
the msi will be the more recent version (on my system is 9.0.30729.4148).

If the policy file is not merged then this will not load at run time (the 
compatability of versions
is controlled by the winners value in the registry which is set in the policy).

Alternatively you may use a #define to change the version of CRT that is 
required so it does match
but merging the policy as well seems simpler.
'''


------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
Tortoisehg-develop mailing list
Tortoisehg-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to