martes, 13 de diciembre de 2011

Sitios precompilados y archivos de informes RDLC

Sintomas:
Publicas un sitio web precompilado siguiendo mis instrucciones en:
 Precompilar en vs2010 para agilizar un sitio ASP.NET
Desgraciadamente tienes errores al ir a cargar informes en formato RDLC.
Solución: 
El problema es que el compilador compila tambien los informes y no los copia al sitio web. Copia una marcador ficticio en su lugar.

Puedes copiar los archivos RDLC manualmente o definir una accion postcompilación, pero una solución mas elegante es buscar en el web.config la sección que fuerza la compilación de los archivos con extensión rdlc:

<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</buildProviders>


Y añadir una linea al final que quite la extensión: <remove extension=".rdlc"></remove>
La cosa quedara así:
<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<remove extension=".rdlc"></remove>
</buildProviders>

Por supuesto podriamos borrar la sección Add pero VisualStudio 2010 nos lo volveria añadir en cuanto hicieramos algo con los informes.

Fuente de la solución: http://connect.microsoft.com/VisualStudio/feedback/details/468068/rdlc-files-are-build-into-resources-during-publish-this-is-a-marker-file



No hay comentarios: