Solución:
Microsoft no está implementando ni incorporando el visor de informes RDLC al núcleo de aspnet. En cambio, están comprando un producto para llenar el vacío.
Enlace completo a noticias: https://blogs.msdn.microsoft.com/sqlrsteamblog/2018/04/02/microsoft-acquires-report-rendering-technology-from-forerunner-software/
Enlace al número original: https://github.com/aspnet/Home/issues/1528
Aquí está la esencia. “Microsoft adquiere la tecnología de representación de informes de Forerunner Software
Nos complace anunciar que hemos adquirido tecnología de Forerunner Software para acelerar nuestras inversiones en Reporting Services. Esta tecnología incluye, entre otras cosas, la representación del lado del cliente de informes de Reporting Services (* .rdl), widgets de interfaz de usuario receptivos para ver informes y un SDK de JavaScript para integrar informes en otras aplicaciones, un testimonio de lo que nuestros socios pueden lograr basándose en nuestra plataforma abierta.
Esta es una gran noticia para usted, ya que vemos oportunidades para aplicar esta tecnología a múltiples puntos de retroalimentación que hemos escuchado de usted:
Busca software como servicio (SaaS) o plataforma como servicio (PaaS) en la nube que pueda ejecutar informes SSRS. Como pudo haber visto en nuestras Notas de la versión Spring ’18, estamos trabajando activamente para llevar los informes SSRS al servicio en la nube de Power BI, y estamos construyendo sobre la representación del lado del cliente para hacerlo posible. Desea ver los informes de SSRS en su teléfono, quizás usando la aplicación Power BI. Creemos que esta tecnología nos ayudará a ofrecer una interfaz de usuario mejor y más receptiva para proporcionar valores de parámetros de informes, navegar dentro de los informes y posiblemente incluso ver el contenido de los informes.
Le encanta el control Visor de informes … pero es un control ASP.NET Web Forms. Necesita algo que pueda integrar en su aplicación ASP.NET Core / MVC o en una aplicación que no sea ASP.NET. Con esta tecnología, esperamos ofrecer un visor de informes del lado del cliente / basado en JavaScript que puede integrar en cualquier aplicación moderna.
Estas son grandes empresas y aún no tenemos plazos para compartir, pero estad atentos durante los próximos meses, ya que siempre nos esforzamos por compartir nuestro progreso con usted y escuchar sus comentarios tan pronto como podamos.
Forerunner Software continuará brindando asistencia a los clientes existentes durante un período de tiempo limitado “.
Para que la solución de Jame funcione, es necesario que haga referencia a .NET Framework completo. Todo esto está muy bien para ASP.NET Core 1 y 2, sin embargo, como todos deberían saber a estas alturas, ASP .NET 3 lo hará NO le permite hacer referencia al .NET Framework completo.
Actualmente, solo es posible usar informes de servidores alojados SSRS (RDL) con .NET Core. Para el cliente RDLC informes, actualmente solo funciona la solución de pago Syncfusion (he probado la versión de prueba)
La solución de James no es completamente válida con ASP.NET Core 3 (que nuevamente, solo le permite hacer referencia a .NET Core, no a .NET Framework)
Si la pregunta es cómo usar Microsoft Reportviewer en el proyecto ASP.NET Core, independientemente de los detalles de implementación, mi solución es omitir el control del visor de informes real y representar los informes directamente en PDF o Excel. Funciona en .net Core 1.1. El paquete NuGet que usamos es Microsoft.ReportViewer.2012.Runtime de Fornax.
using System.IO;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Reporting.WebForms;
namespace WebApplication3.Controllers
{
public class ReportController : Controller
{
private readonly IHostingEnvironment environment = null;
public ReportController(IHostingEnvironment environment)
{
this.environment = environment;
}
public IActionResult Report()
{
string mimeType;
string encoding;
string filenameExtension;
string[] streams;
Warning[] warnings;
var rv = new ReportViewer();
rv.ProcessingMode = ProcessingMode.Local;
rv.LocalReport.ReportPath = Path.Combine(environment.ContentRootPath, "Reports", "Report1.rdlc");
rv.LocalReport.Refresh();
var bytes = rv.LocalReport.Render("PDF", null, out mimeType, out encoding, out filenameExtension, out streams, out warnings);
return File(bytes, mimeType);
}
}
}