Tengo un particular problema usando Crystal Reports en un proyecto de servicio WCF. (Uso Visual Studio 2010 SP1, CrystalReports 13 for VS y Framework .NET 4)
Sobre un objeto (rpt) de tipo ReportClass, al usar el metodo SetDataSource
Código:
me tira el siguiente error en tiempo de ejecución:rpt.SetDataSource(dt)
Información adicional: No se puede cargar el archivo o ensamblado 'file:///C:\Program Files\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll' ni una de sus dependencias. El sistema no puede encontrar el archivo especificado.
Googlié el mensaje de error y todos dan una única solución, agregar en el archivo de configuración (app.config/web.config) las siguientes líneas:
Código:
ó<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> </startup>
Código:
Pero sigue dando el mismo error. Así que creé la carpeta dotnet1 en la ubicación mencionada a ver que pasa y arroja el siguiente error:<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup>
Información adicional: El ensamblado de modo mixto se ha compilado con la versión 'v2.0.50727' del runtime y no se puede cargar en el runtime 4.0 sin información de configuración adicional.
Por lo visto el Crystal Reports 13 funciona con el Framework .NET 2 y necesita la configuración adicional useLegacyV2RuntimeActivationPolicy en "true" para poder andar. Pero el servicio de alguna manera no toma ésa configuración, la omite o no la lee.
Si yo intento crear los reportes con LA MISMA LÓGICA (incluyendo useLegacyV2RuntimeActivationPolicy="true") pero en una aplicación de consola, windows form o web form funciona perfectamente. El conflicto lo tiene con los servicios WCF.
Alguna idea de como solucionar este problema?
Saludos