Ticket #577 (closed: fixed)

Opened 11 years ago

Last modified 5 years ago

Embed Visual studio runtime installers into the msi

Reported by: Russell Taylor Owned by: Roman Tolchenov
Priority: blocker Milestone: Iteration 18
Component: Keywords:
Cc: Blocked By:
Blocking: Tester:

Description


Change History

comment:1 Changed 11 years ago by Russell Taylor

(In [2413]) Add MSVC7.1 (2003 SP1 Runtime libs) - required by OpenCascade. Re #577.

comment:2 Changed 11 years ago by Russell Taylor

(In [2414]) Temporarily comment out some references to missing headers. Re #577.

comment:3 Changed 11 years ago by Russell Taylor

  • Summary changed from OpenCascade requires MCVCP80.dll, which can be missing on some machines to Latest release and dev version failing to start on some Windows machines

There appear to be two problems:

  • OpenCascade requires MCVCP71.dll, which can be missing on some machines
  • It's failing to load the OpenMP runtime library

comment:4 Changed 11 years ago by Russell Taylor

(In [2418]) Swap the OpenCASCADE Windows libraries for ones built with Visual Studio 8 (2005 - i.e. the one we all use). This removes the need to ship the 7.1 runtime libraries. Re #577.

comment:5 Changed 11 years ago by Russell Taylor

(In [2419]) Check in some minor changes (the removal of a few gcc compiler warnings) to trigger a build of Geometry. Re #577.

comment:6 Changed 11 years ago by Russell Taylor

(In [2420]) Another build trigger (and more warnings removed- this time VS ones). Re #577.

comment:7 Changed 11 years ago by Russell Taylor

The issue surrounding the OpenMP library is the following:

  • When compiling with VS it embeds the manifest stating the dependency on OpenMP, but specifies a different (older) version of the dll to that which we are shipping (and which lives in our WINDOWS\WinSxS directories).
  • This is fine on all our machines: in this WinSxS folder there is a Policies folder, which specifies that when asked for the old version, use the new version.
  • When a user without the runtime libraries already installed tries to use Mantid, the system looks at the OpenMP manifest file in the bin directory and then complains because the version is not the one it's looking for.
  • It is possible to edit the version number in the manifest file by hand, just giving the old version, and then Mantid starts up OK.
  • But in order for the plugins to load, you need to copy the manifest file and vcomp.dll into the plugins directory as well.
  • So the proper solution is to bundle the VS++ redistributible package into our installer so that everything ends up properly installed in WINDOWS/WinSxS. Instructions are here: http://msdn.microsoft.com/en-gb/zebw5zk9(VS.80).aspx

Roman has started looking at how to do this.

comment:8 Changed 11 years ago by Nick Draper

  • Summary changed from Latest release and dev version failing to start on some Windows machines to Embed Visual studio runtime installers into the msi

comment:9 Changed 11 years ago by Nick Draper

  • Owner set to Roman Tolchenov
  • Milestone changed from Iteration 17 to Iteration 18

comment:10 Changed 11 years ago by Roman Tolchenov

(In [2490]) Visual studio CRT and OpenMP modules are merged into Mantid.msi re #577

comment:11 Changed 11 years ago by Roman Tolchenov

  • Status changed from new to closed
  • Resolution set to fixed

comment:12 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 1425

Note: See TracTickets for help on using tickets.