My software populates a DataTable in memory, then passes it to a Crystal Report using the ReportDocument.SetDataSource method. When running the report, the following error is received, originating from within Crystal’s dll structure:
Could not load file or assembly 'file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll' or one of its dependencies. The system cannot find the file specified.
Searching for this error (it occurs letter-for-letter on most systems) brings up the following solution:
In your application’s App.Config file, find a line that looks like this:
< startup>
< supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
< /startup>
Add the following subtag:
< startup useLegacyV2RuntimeActivationPolicy="true">
< supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
< /startup>
I have tried this to no avail. My App.Config file has the useLegacyV2RuntimeActivationPolicy bit, but the error persists.
I tried restructuring the report to use a direct data source from the database through Crystal, but running that report shows a Database Login screen where the Database Name is blank and read-only. Trying to specify the login info using the inbuilt report creator, the ReportDocument.SetDatabaseLogon method, and even iterating through the ReportDocument.Database.Tables collection and setting the ConnectionInfo object all produce the same result (though sometimes slightly different, such as also blanking the username and password, or changing the servername to DataSet1).
Is there any further workaround for this error, or a fix in a newer version of Crystal Reports?