Skip to Content
-1

Dependency of Visual C++ 2005 re-distributable on different versions of Crystal report run-times

Sep 14, 2017 at 12:32 AM

631

avatar image

Hi All,

Can you please provide us some information on the dependency of Visual C++ 2005 re-distributable on different versions of Crystal report run-times?

We are working on the impact of un-installing Visual C++ 2005 re-distributable on our applications.

1)As per msdn articles, Visual C++ 2005 distributable comprise of the following DLLs.

Active Template Library

  • atl80.dll

C Runtime and Standard C++ Libraries

  • msvcm80.dll
  • msvcp80.dll
  • msvcr80.dll

Microsoft Foundation Classes

  • mfc80.dll
  • mfc80u.dll
  • mfcm80.dll
  • mfcm80u.dll

2)As per our observations with some of our applications when explored using process monitor (system internal tools),

  • When Crystal reports 10_2 for Visual Studio 2005 are used, run-time uses Visual C++ 2005 re-distributable (like atl80.dll listed above). We assume this is correct.
  • However, when Crystal reports 10_5 for Visual Studio 2008 or Crystal reports 13_0 for Visual Studio 2012, the run-time still reported to be using Visual C++ 2005 re-distributable dlls. Should it not be using already installed Visual C++ 2008 or Visual C++ 2013 re-distributable respectively

Can you please share your insights on our approach to confirm the impact?

Thanks for all your help!

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

6 Answers

Best Answer
Dell Stinnett-Christy Sep 14, 2017 at 02:49 PM
1

The installs for the newer versions still require the C++ 2005 libraries, but they don't install them - the installs expect that the libraries have already been installed.

I believe that SP21 of Crystal for Visual Studio (version 13.x) doesn't require C++ 2005, but anything earlier than that does.

-Dell

Show 11 Share
10 |10000 characters needed characters left characters exceeded

Thanks a lot, Dell.

Currently, with our impact validation, we used Crystal reports 13_0_12 for Visual Studio 2012.

We will upgrade the crystal run time with Service pack 21 (CR 13_0_21) and validate.

Thanks again!

0

You can't just upgrade the runtime. You'll also need to recompile the application with the new version of the SDK. Runtime and design-time version MUST match.

-Dell

0

Ok Dell. Got it, we will upgrade the SDK and runtime to validate this.

Thank you!

0

Hi Dell,

1) We have started validating this using the new Crystal report Runtime (CR 13.0.21) and SDK (CR 13.0.21 for Visual Studio). Added the new references of Crystal report to the application and prepared the build.

2) When running the application build with newer version Crystal report SDK, process monitor still reported to be using some of the VC++ 2005 re-distributable dlls(msvcp80.dll), where the application build with earlier versions (13_0_12) also used other dlls of the re-distributable( atl80.dll along with msvcp80.dll).

Any thoughts on the above observations?

3) Also, can you also give inputs on whether any version of .Net framework use these VC++ 2005 dlls.

We are actually working on confirming if we are going to break the Crystal reports functionality within our applications if we remove these VC++ 2005 re-distributable dlls on the machines that host applications.

Please let us know your thoughts.

Thank you!

0

I'm not sure whether .NET 3.5 uses the VC++2005 dlls, but I don't think .NET 4.0 or 4.5 do.

-Dell

0

Thanks Dell.

We could see the new Crystal report run time dll (CrystalDecisions.CrystalReports.Engine, Version: 13.0.3500.0) uses the .Net framework 2.0 as given below

Is this expected. We are suspecting this could be the reason for process monitor to still report that the application is loading VC++ 2005 re-distributable dlls.

0

Which .Net framework is your application targeting? It looks like it's targeting .NET 2.0. If you change it to target .NET 3.5 do you still see the C++ 2005 dependencies?

-Dell

0

Hi Dell,

I used .Net 4.5.1 as target framework for building the application and the above screenshot is a reference when a de-compiler is used on my application.

0

Hi everyone,

Can you please help us in analyzing further?

Just to add information to the above points:

The runtime version of System.dll is shown as 4.0.30319, but the runtime version of crystal reports (13.0.3500.0) is shown as v2.0.50727 in the refrerences of Visual Studio project solution as given below: Is this expected?

0

Can you please let us know if we are approaching this correctly and let us know if there is any way to use CR run-time that uses the latest version of Visual C++ re-distributable.

Thanks for the help!

0

Hi,

Just curious if the Crystal reports 13.0.3500 needs a minimum of the v2.0.50727 runtime as per the explanation of purpose of the Runtime Version of DLLs. Should it not be v4.0.30319 as the Crystal report 13.0.3500 will only work with > .Net 4.0?

https://stackoverflow.com/questions/8573942/what-is-the-difference-between-version-and-runtime-version-in-net

Regards,

Sudharshan.

0
Don Williams
Sep 14, 2017 at 05:06 PM
1

You can get CR for VS SP 21 from here:

https://wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads

Requires using VS 2010 or above

Show 1 Share
10 |10000 characters needed characters left characters exceeded

Thank you, Don for the download links.

0
avatar image
Former Member Nov 16, 2017 at 08:46 PM
0

Hi,

I can't seem to get rid of the dependencies on VC++ 2005 Redistributable with CR 13.0.21 either.

I tried to install the CR SP 21 runtime, deployed a configuration file which is similar to the sample provided on wiki for my application (built previously with .NET 4.0). However, when running the application and using Process Explorer to view its loaded DLLs, the CR binaries had the expected version (13.0.21.2533) but I still saw the following DLL of the VC++ 2005 Redistributable in the list:

C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.8428_none_d08a11e2442dc25d\msvcr80.dll

When I manually deleted this file, my application threw the following error:

... Retrieving the COM class factory for component with CLSID {F734A321-8381-4FFD-A614-139E8906DC83} failed due to the following error: 800736b3 The referenced assembly is not installed on your system. (Exception from HRESULT: 0x800736B3).

Scanning this GUID on a working machine pointed to "C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\clientdoc.dll".

I also tried to re-built my application with the CR SP21 but still got the same problem.

Could you please help? Is it true that CR runtime SP21 does not depend on VC++ 2005 at all?

My OS is Windows Server 2012 R2 (updated to latest Windows updates).

Thank you,

Thang

Share
10 |10000 characters needed characters left characters exceeded
Don Williams
Nov 16, 2017 at 08:49 PM
0

SP 21 does not need it, it now has a dependency on VS 2015 C++ runtime.

Also depends on the Framework you selected, must be 3.5 or higher. More install issues noted on the WIKI page:

https://wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads

There may be some third party dependencies still using it.

And for all of the Windows OS's I've seen the VC 2005 runtime is installed by default. So not sure you will be able to remove it completely.

Don

Share
10 |10000 characters needed characters left characters exceeded
Don Williams
Nov 17, 2017 at 04:29 PM
0

You cannot have more than one version of CR for VS runtime installed on the same PC.

Not likely will happen, just make sure you only have one version installed.

Don

Share
10 |10000 characters needed characters left characters exceeded
avatar image
Former Member Nov 17, 2017 at 04:27 PM
0

I think I found the cause.

I have installed the CR SP21 on top of the previous release (CR SP 12), problem is that CR SP 12 has the file icuuc30.dll (and some other files) with the version of 14.0.0.760 while the version of this file packaged in CR SP21 is 3.0.0.0. As a result, when installing CR SP21 without removing SP12, this file cannot be overridden because the new version is less than the old version. This icuuc30.dll unfortunately references to one of the DLLs of VC++ 2005 runtime (MSVCR80.dll) and it caused my application to still require the VC++ 2005 present in the system. Uninstalling SP12 before installing SP21 resolved the issue.

I assume that in next releases, CR should increase the version of these files to support installing different SPs on the same system.

Thank you for your answers.

Thang.

Show 1 Share
10 |10000 characters needed characters left characters exceeded

Hi Thang,

Thanks for letting us know your resolution.

Regards,

Sudharshan.

0