Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

Missing CrystalDecisions.CrystalReports.Engine.dll in Build

I am attempting to build my application that uses the Crystal Reports API, and the command line build is barfing on a missing DLL:

        cl -I.  -I.././IDL -I.././Infrastructure -Ic:\dev\iona\include -Ic:\dev\SourcePro -nologo -W3 -GR -vmg -Od -MD -Zi -Zm200 -DWIN32 -DWIN32_LEAN_AND_MEAN



c:\dev\sources\videoview_6_8-merge\video\nextlink\reportfaxservice\NReportFaxServiceImpl.h(15) : fatal error C1107: could not find assembly 'CrystalDecisions.CrystalReports.Engine.dll': please specify the assembly search path using /AI or by setting the LIBPATH environment variable

NMAKE : fatal error U1077: 'c:\dev\VisualStudio\VC\bin\cl.EXE' : return code '0x



I have a machine that appears to have that DLL in the location specified by the /AI directive, but on this machine (and several other new machines we have build and installed Visual Studio and Crystal Reports on), the DLL is not in that location.

Is there a different DLL that I should be using instead of that one?  When I rip out references to that assembly (by removing the #using directives that reference those modules), then I get these errors:

        cl -I.  -I.././IDL -I.././Infrastructure -Ic:\dev\iona\include -Ic:\dev\SourcePro -nologo -W3 -GR -vmg -Od -MD -Zi -Zm200 -DWIN32 -DWIN32_LEAN_AND_MEAN -DVERSANT_ANSI -D_CRT_SECURE_NO_DEPRECATE -D_AFXDLL /clr /AI c:\dev\BusinessObjects\Common\4.0\managed  -DNDEBUG  -DIT_USE_STD_IOSTREAM -DORBIX_DLL   -D_RWCONFIG=12d -D_CONSOLE  -c main.cpp


c:\dev\sources\videoview_6_8-merge\video\nextlink\reportfaxservice\NReportFaxServiceImpl.h(133) : error C2061: syntax error : identifier 'ReportDocument'

c:\dev\sources\videoview_6_8-merge\video\nextlink\reportfaxservice\NReportFaxServiceImpl.h(136) : error C2061: syntax error : identifier 'ReportDocument'

NMAKE : fatal error U1077: 'c:\dev\VisualStudio\VC\bin\cl.EXE' : return code '0x


Which occurs on these declarations:

    void createPDF(

              ReportDocument^ rpt,

              String^ destinationString);

    void printReport(

              ReportDocument^ rpt,

              String^ destinationString);

Where is ReportDocument, if it's not in CrystalDecisions.CrystalReports.Engine.dll.  These are the relevant lines that I commented out:

// #using <CrystalDecisions.CrystalReports.Engine.dll>

// #using <CrystalDecisions.Shared.dll>

// using namespace CrystalDecisions::Shared;

// using namespace CrystalDecisions::CrystalReports::Engine;


Former Member

If you need references to the RAS runtime as well, then your best option is to probably copy all of the dlls in the dotnet2 folder to the managed folder.

The reason for the two folders is that Crystal Reports 2008 is supported on both the 1.1 and 2.0 frameworks, but there are significant differences between the two frameworks so versions had to be compiled for each framework.  Its not an issue if you're compiling in the IDE as the integration with the IDE knows where to look.

In your case, the command line complier doesn't seem to have that logic, so I think you are stuck with the manual workaround or a bigger command line with paths referencing each dll.  In CR for VS2010 all of the runtime (CR and RAS) is compiled on the 2.0 framework and the need for multiple versions doesn't exist since CR for VS2010 runtime isn't supported on the 1.1 framework.

0 View this answer in context
Not what you were looking for? View more on this topic or Ask a question