Search code examples
.netcrystal-reports

Do I need to install something from Crystal Reports on the server?


I am developing a web application project in Visual Studio 2010. It is published to a Windows 2008 server.

I have added references to:

CrystalDecisions.CrystalReports.Engine

CrystalDecisions.Shared

CrystalDecisions.Web

And added CrystalReportViewer to a .aspx page.

The crystal report files that are to be displayed by the viewer are on the server the application is published to.

If I run the application locally - it works fine and the reports are displayed in the viewer.

If I publish the application to the server, it falls over with a 'log4net' missing assembly message.

Do I need to install something from Crystal Reports on the server?


Solution

  • Yes- you will need to install the relevant Crystal Reports runtimes/redistributes;

    http://www.businessobjects.com/jump/xi/crvs2010/us2_default.asp

    Should have what you need.

    If you get trouble with versions try fixing by adding this to your app/web .config:

    <runtime> 
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="CrystalDecisions.CrystalReports.Engine" publicKeyToken="692fbea5521e1304" culture="neutral"/>
            <bindingRedirect oldVersion="xx.x.xxxx.x" newVersion="yy.y.yyyy.y"/>
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="CrystalDecisions.Shared" publicKeyToken="692fbea5521e1304" culture="neutral"/>
            <bindingRedirect oldVersion="xx.x.xxxx.x" newVersion="yy.y.yyyy.y"/>
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="CrystalDecisions.ReportSource" publicKeyToken="692fbea5521e1304" culture="neutral"/>
            <bindingRedirect oldVersion="xx.x.xxxx.x" newVersion="yy.y.yyyy.y"/>
          </dependentAssembly>
          <dependentAssembly>
            ...
        </assemblyBinding>
      </runtime>