cancel
Showing results for 
Search instead for 
Did you mean: 

Application deployment Issue using CR for VS 2013

Former Member
0 Kudos

Hi Ludek,

I have a Visual Studio Windows Forms application written in VB that uses Crystal Reports. It was originally written using VS 2010 and worked fine until it was converted to VS 2013. After installing CRforVS 2013, the reports all work fine on my development machine. The app is complied with Target CPU set to x64 and it targets the .Net 4.5.1 Framework. The app is being deployed as a click once app to machines that are all running Win 7 (64 bit). I have manually installed the run time  CRRuntime_64bit_13_0_9.msi on those machines. But I am getting the message below and cannot find a solution. Do you have any ideas as to what I am miising?

"Unable to install or run the application. The application requires that assembly CrystalDecisions.ReportAppServer.CommonObjectModel Version 13.0.2000.0 be installed in the Global Assembly Cache (GAC) first."

Using gacutil I found both the 32 and 64 bit version of this assembly on my development machine in the GAC. After deployment, the target user machine does not have this assembly in the GAC. I have a click once app so there is no msi file to check.

Below are all of the Crystal dlls in the "Application Files" list on the "Publish" tab of the solution "Properties" page.

CrystalDecisions.CrystalReports.Engine.dllPrerequisite (Auto)
CrystalDecisions.ReportAppServer.ClientDoc.dllPrerequisite (Auto)
CrystalDecisions.ReportAppServer.CommLayer.dllPrerequisite (Auto)
CrystalDecisions.ReportAppServer.CommonControls.dllPrerequisite (Auto)
CrystalDecisions.ReportAppServer.CommonObjectModel.dllPrerequisite (Auto)
CrystalDecisions.ReportAppServer.Controllers.dllPrerequisite (Auto)
CrystalDecisions.ReportAppServer.CubeDefModel.dllPrerequisite (Auto)
CrystalDecisions.ReportAppServer.DataDefModel.dllPrerequisite (Auto)
CrystalDecisions.ReportAppServer.DataSetConversion.dllPrerequisite (Auto)
CrystalDecisions.ReportAppServer.ObjectFactory.dllPrerequisite (Auto)
CrystalDecisions.ReportAppServer.Prompting.dllPrerequisite (Auto)
CrystalDecisions.ReportAppServer.ReportDefModel.dllPrerequisite (Auto)
CrystalDecisions.ReportAppServer.XmlSerialize.dllPrerequisite (Auto)
CrystalDecisions.ReportSource.dllPrerequisite (Auto)
CrystalDecisions.Shared.dllPrerequisite (Auto)
CrystalDecisions.Windows.Forms.dllPrerequisite (Auto)

I even tried changing from "Prerequisite (Auto)" to "Include" but doing this puts them in the application folder and not in the GAC and I still get the same message.

Any ideas are greatly appreciated.

Thanks,

David

Accepted Solutions (1)

Accepted Solutions (1)

former_member183750
Active Contributor
0 Kudos

Hi David

The 1st thing I did was run the SP 9 MSI files, 32 and 64 bit, on a clean system to verify that the assembly does get installed. And it does. The ClickOnce is, in a nutshell, the same as the MSI so I'm reasonably confident that the files do work.  Now, I do have one question based on this:


The app is being deployed as a click once app to machines that are all running Win 7 (64 bit). I have manually installed the run time  CRRuntime_64bit_13_0_9.msi on those machines.

and:


I have a click once app so there is no msi file to check.

If the app is being deployed as clickonce why manually run the MSI? I know I'm missing something here - sorry...

- Ludek

Former Member
0 Kudos

Ludek,

Sorry, I wasn't being entirely accurate.

To answer your question, when I originally published my app, I had failed to see the "SAP Crystal Reports Runtime Engine for .Net Framework" as an option in the list of prerequisites. So I manually installed it before I ran the setup program to install my app. I got the message about the "CrystalDecisions.ReportAppServer.CommonObjectModel" missing in the GAC during the install of the app on all of those machines.

When I went back into Visual Studio later to check some of my "Publish" settings, I noticed that I could specify the run time engine as a prerequisite. So I selected it,republished the app, and deployed it to a machine (64 bit Win 7) that had never had Crystal or my app on it.

It immediately popped up a dialog box that ask if I wanted to install the SAP run time from the web. I let it download and install it, which it did with no errors. When the install popped up the succeeding dialog to install the app, it got to the same point it had with the other installs and then coughed up the error message about the assembly missing.

I looked at the Add/Remove Programs list on all of the machines and all of them, whether manually installed or installed from the web had an entry for "SAP Crystal Reports runtime engine for .Net Framework (64 bit)" and the version is 13.0.9.1312 at a size of 214MB.

I didn't have any hair to begin with but if I had, it'd be gone at this point.

David

former_member183750
Active Contributor
0 Kudos

Very weird, confusing and the rest of those sorts of descriptors....

I cannot explain why the CrystalDecisions.ReportAppServer.CommonObjectModel assembly is not installing via the MSI or clickonce. I really did run it here and it worked fine and I don't hear of this issue anywhere else either. (BTW., what OS were you using?). Maybe we want to look at virus checking software (e.g.; disable it), make sure all apps are closed and make sure the user the runtime is being installed under has local admin privileges.

Couple of things to do:

1) Look here:

C:\Program Files (x86)\SAP BusinessObjects\InstallData

for install logs. See if there is a nugget in there...

2) If an install does not complete, it will create logs in:

C:\Users\<user ID>\AppData\Local\Temp

3) See if enabling more verbose install logging will tell you anything. See:

How to enable Windows Installer logging

- Ludek

Former Member
0 Kudos

Ludek,

Okay, after spending a considerable amount of time on this issue, I have found a solution that works but I have to say I don’t know why.

First, I went back and checked the latest Win 7 64 bit machine where I had deployed my app. After the ClickOnce app had downloaded and installed the Crystal run time, it failed with the original message about the CommonObjectModel missing. I then used the gacutil to verify that all of the CrystalDecisions dlls were either in the MSIL or the AMD64 area. I have tried so many things that I can’t say why I didn’t find them there before but that was one issue off the table.

Next, I went back into the Visual Studio property pages for this app and matched up what was showing under the “References” tab to what was showing under ”Publish/Applications Files” (see the list below).

References:

  1. CrystalDecisions.CrystalReports.Engine
  2. CrystalDecisions.ReportSource
  3. CrystalDecisions.Shared
  4. CrystalDecisions.Windows.Forms

Publish/Application Files:

  1. CrystalDecisions.CrystalReports.Engine.dll
  2. CrystalDecisions.ReportAppServer.ClientDoc.dll
  3. CrystalDecisions.ReportAppServer.CommLayer.dll
  4. CrystalDecisions.ReportAppServer.CommonControls.dll
  5. CrystalDecisions.ReportAppServer.CommonObjectModel.dll
  6. CrystalDecisions.ReportAppServer.Controllers.dll
  7. CrystalDecisions.ReportAppServer.CubeDefModel.dll
  8. CrystalDecisions.ReportAppServer.DataDefModel.dll
  9. CrystalDecisions.ReportAppServer.DataSetConversion.dll
  10. CrystalDecisions.ReportAppServer.ObjectFactory.dll
  11. CrystalDecisions.ReportAppServer.Prompting.dll
  12. CrystalDecisions.ReportAppServer.ReportDefModel.dll
  13. CrystalDecisions.ReportAppServer.XmlSerialize.dll
  14. CrystalDecisions.ReportSource.dll
  15. CrystalDecisions.Shared.dll
  16. CrystalDecisions.Windows.Forms.dll

I decided to add the “ReportAppServer” dlls one at a time to the list of references, starting with the CommonObjectModel and re-publish the app every time I added one. Each time it failed, I added the next dll it said was missing in the GAC to the list of references. At the end of this exercise, and after the app had installed with no errors, the only two I had not added to the list was the CommonControls and DataSetConversion dlls.

When I launched the app, all the reports were rendered in the viewer as they should have.

Also, all of the "ReportAppServer" dlls still show up as unused references in my app.

I don't know what the ReportAppServer dlls do and I didn't need them before this CRVS2013 version came out but if this is what it takes to make it work, I'm leaving them there.

Thanks for all your help and suggestions.

David

Answers (0)