Bug 89310 - error starting LO. file is required msvcr120.dll
Summary: error starting LO. file is required msvcr120.dll
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
4.5.0.0.alpha0+ Master
Hardware: x86-64 (AMD64) Windows (All)
: medium normal
Assignee: DavidO
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-11 16:15 UTC by Roman Kuznetsov
Modified: 2015-02-20 05:37 UTC (History)
7 users (show)

See Also:
Crash report or crash signature:


Attachments
error starting LO windows x86-64 (22.84 KB, image/png)
2015-02-11 16:15 UTC, Roman Kuznetsov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Roman Kuznetsov 2015-02-11 16:15:08 UTC
Created attachment 113315 [details]
error starting LO windows x86-64

Version: 4.5.0.0.alpha0+ --->>>>>(x64)<<<<<---
Build ID: Built by David Ostrovsky
Locale: ru_RU

error starting LO (see screenshot) file is required msvcr120.dll
corrected by installing Microsoft Visual C ++ Redistributable Packages 2013
Comment 1 Julien Nabet 2015-02-11 20:16:55 UTC
David: thought you might be interested in this one.
Comment 2 DavidO 2015-02-12 05:52:18 UTC
Thanks.

@Andras can you have a look, why msvcr120.dll is missing? Does it work for 32-bit build and what is here the difference?
Comment 3 DavidO 2015-02-12 06:49:28 UTC
Actually this should be installed on both, 32-bit and 64-bit builds:

#scp2/source/winexplorerext/file_winexplorerext.scp

[...]
#if defined(WITH_VC120_REDIST)

File gid_File_Lib_Msvcr120
    LIB_FILE_BODY;
    Styles = (PACKED);
    Dir = gid_Dir_Shlxthdl;
    Name = "msvcr120.dll";
    ComponentCondition = "VersionNT64";
End

File gid_File_Lib_Msvcp120
    LIB_FILE_BODY;
    Styles = (PACKED);
    Dir = gid_Dir_Shlxthdl;
    Name = "msvcp120.dll";
    ComponentCondition = "VersionNT64";
End

#endif
[...]

And WITH_VC120_REDIST should be set unconditionally for Windows platform.
Comment 4 V Stuart Foote 2015-02-12 07:05:27 UTC
@David, Andras

On Windows 7 sp1, 64-bit en-US with /A administrative install of the 64-bit build, I also received the error to install the msvcr120.dll Microsoft Visual C++ Redistributable Packages 2013.

I already had the 32-bit build of msvcr120.dll installed but not 64-bit on this system.

Download and installed 64-bit build from MS: http://www.microsoft.com/en-us/download/details.aspx?id=40784

Clean launch of 64-bit LibreOffice after that.

Version: 4.5.0.0.alpha0+ (x64)
Build ID: Built by David Ostrovsky
Locale: en_US

with build date 2015-02-09
Comment 5 DavidO 2015-02-12 07:18:12 UTC
@Stuart, thanks for providing the link for the workaround. There is another issue tracking the availability of LO build on 64-bit windows [1]. Could you please perform a quick smoke test for LibreOffice 64-bit build? Does it looks sane to you?

OK, must correct my previous comment. 120 redist doesn't seem to be installed unconditionally, but only on mingw:

# Misc Windows Stuff
if test $_os = "WINNT" -a "$WITH_MINGW" != yes; then
    find_msvc_x64_dlls
    find_msms
    MSVC_DLL_PATH="$msvcdllpath"
    MSVC_DLLS="$msvcdlls"
    MSM_PATH="$msmdir"
    SCPDEFS="$SCPDEFS -DWITH_VC${VCVER}_REDIST"
fi

So i guess i don't understand why it works on 32-bit build?

[1] https://bugs.documentfoundation.org/show_bug.cgi?id=61683
Comment 6 Michael Stahl (allotropia) 2015-02-12 19:37:22 UTC
(In reply to DavidO from comment #3)
> Actually this should be installed on both, 32-bit and 64-bit builds:
> 
> #scp2/source/winexplorerext/file_winexplorerext.scp

that is for the 64-bit shell extensions in a 32-bit build and
won't help because these dlls are copied to the shlxthdl subdirectory.

> OK, must correct my previous comment. 120 redist doesn't seem to be installed unconditionally, but only on mingw:

that wouldn't make much sense, would it? re-read that conditional again :)

perhaps the 32-bit runtimes are packaged currently?
Comment 7 DavidO 2015-02-18 00:12:08 UTC
Uploaded an attempt to fix it: [1] and new build artifact [2]. Can someone with access to Windows 64 bit without redist DLLS installed verify it?

[1] https://gerrit.libreoffice.org/14527
[2] https://wiki.documentfoundation.org/Development/msvc-x86_64#Testing_call_for_help
Comment 8 V Stuart Foote 2015-02-20 03:11:35 UTC
@David, *,

On Windows 7 sp1, 64-bit en-US with nVidia GTX 260

Removed 64-bit msvcr120.dll and installed as Administrator (using msiexec.exe /i) from Thorsten's TB42 builds... 

Version: 4.5.0.0.alpha0+ (x64)
Build ID: 418b0d39c3a15d642b87dd24c40a91d887426086
TinderBox: Win-x86_64@42, Branch:master, Time: 2015-02-19_00:02:49
Locale: en_US

Did a clean custom install (no Quickstart, no updates, en Dictionary only).

Confirming that if Run as Administrator, the install correctly adds the msvcr120.dll Microsoft Visual C++ Redistributable Packages 2013.

Launch and no issues with build.

Folks should be aware that an MSI Administrative /A install can not correctly register the 64-bit msvcr120.dll

=-=-

Here are pertinent lines from a verbose log (@David, let me know if you need it in entirety):

MSI (s) (20:94) [20:48:30:246]: Component: C_CENTRAL_msvcr120_x64.05F0B5F5_44A8_3793_976B_A4F17AECF92C; Installed: Absent;   Request: Local;   Action: Local

MSI (s) (20:94) [20:48:30:246]: Component: C_CENTRAL_vccorlib120_x64.05F0B5F5_44A8_3793_976B_A4F17AECF92C; Installed: Absent;   Request: Local;   Action: Local

MSI (s) (20:94) [20:48:35:285]: Executing op: ComponentRegister(ComponentId={E5B92048-5859-4AF1-AEAD-B97EBF00B087},KeyPath=C:\Windows\system32\msvcr120.dll,State=3,,Disk=1,SharedDllRefCount=1,BinaryType=1)

1: {73EDF647-3E91-45CA-875D-8A1BB255B160} 2: {E5B92048-5859-4AF1-AEAD-B97EBF00B087} 3: C:\Windows\system32\msvcr120.dll 

MSI (s) (20:94) [20:48:35:285]: Executing op: ComponentRegister(ComponentId={570C624B-D57C-4CD1-9013-1B80C800093B},KeyPath=C:\Windows\system32\msvcp120.dll,State=3,,Disk=1,SharedDllRefCount=1,BinaryType=1)

1: {73EDF647-3E91-45CA-875D-8A1BB255B160} 2: {570C624B-D57C-4CD1-9013-1B80C800093B} 3: C:\Windows\system32\msvcp120.dll 

MSI (s) (20:94) [20:48:35:285]: Executing op: ComponentRegister(ComponentId={14E8634F-8AEA-4CD1-AC48-BEBFDA18523A},KeyPath=C:\Windows\system32\vccorlib120.dll,State=3,,Disk=1,SharedDllRefCount=1,BinaryType=1)

1: {73EDF647-3E91-45CA-875D-8A1BB255B160} 2: {14E8634F-8AEA-4CD1-AC48-BEBFDA18523A} 3: C:\Windows\system32\vccorlib120.dll 

MSI (s) (20:94) [20:49:10:978]: File: C:\Windows\system32\msvcp120.dll;	To be installed;	Won't patch;	No existing file

MSI (s) (20:94) [20:49:10:978]: Source for file 'F_CENTRAL_msvcp120_x64.05F0B5F5_44A8_3793_976B_A4F17AECF92C' is compressed

InstallFiles: File: msvcp120.dll,  Directory: C:\Windows\system32\,  Size: 660128

MSI (s) (20:94) [20:49:10:993]: Executing op: FileCopy(SourceName=msvcr120.dll,SourceCabKey=F_CENTRAL_msvcr120_x64.05F0B5F5_44A8_3793_976B_A4F17AECF92C,DestName=msvcr120.dll,Attributes=16384,FileSize=963232,PerTick=65536,,VerifyMedia=1,,,,,CheckCRC=0,Version=12.0.21005.1,Language=1033,InstallMode=58982400,,,,,,,)

MSI (s) (20:94) [20:49:10:993]: File: C:\Windows\system32\msvcr120.dll;	To be installed;	Won't patch;	No existing file

MSI (s) (20:94) [20:49:10:993]: Source for file 'F_CENTRAL_msvcr120_x64.05F0B5F5_44A8_3793_976B_A4F17AECF92C' is compressed

InstallFiles: File: msvcr120.dll,  Directory: C:\Windows\system32\,  Size: 963232
Comment 9 V Stuart Foote 2015-02-20 03:37:07 UTC
One additional aspect of bundling the MSVC++ 2013 redistributable runtime--it installs system wide to C:\Windows\system32, and it is available for all applications to utilize.  Including for example another /A install of LibreOffice x64.

But when the fully installed LibreOffice is uninstalled, the uninstaller removes the 64-bit msvcr120.dll instances.

That is probably correct--if LO installs it it should remove it.

@David, @Andras--would it be possible/worthwhile to adjust the MSI packaging to ask if the 64-bit MSVC++ 2013 redistributable should be left in place?

Otherwise folks will need to again install the 64-bit runtime  manually if they have added anything else dependent on it.
Comment 10 Roman Kuznetsov 2015-02-20 05:37:41 UTC
(In reply to V Stuart Foote from comment #9)
> One additional aspect of bundling the MSVC++ 2013 redistributable
> runtime--it installs system wide to C:\Windows\system32, and it is available
> for all applications to utilize.  Including for example another /A install
> of LibreOffice x64.
> 
> But when the fully installed LibreOffice is uninstalled, the uninstaller
> removes the 64-bit msvcr120.dll instances.
> 
> That is probably correct--if LO installs it it should remove it.
> 
> @David, @Andras--would it be possible/worthwhile to adjust the MSI packaging
> to ask if the 64-bit MSVC++ 2013 redistributable should be left in place?
> 
> Otherwise folks will need to again install the 64-bit runtime  manually if
> they have added anything else dependent on it.


when removing LibreOffice x86-64 simply no need to remove the library msvcr120.dll. It is a system, you never know who else it is needed.