2013-02-04 7 views
10

Ho aggiornato di recente un'app WinForms da .NET 3.5 a .NET 4.0 che contiene report locali. Includo gli assembly versione 11.0 per Microsoft.ReportViewer.WinForms, Microsoft.ReportViewer.Common e Microsoft.ReportViewer.ProcessingObjectModel nella directory dell'applicazione, che è tutto ciò che serviva per distribuire questa app utilizzando .NET 3.5, ma ottengo il seguente errore su un computer di destinazione con .NET 4.0 ma nessun VisualStudio o SQL Server:Il ReportViewer di WinForms ha dipendenze di distribuzione aggiuntive in .NET 4.0?

TYPE: Microsoft.Reporting.WinForms.LocalProcessingException 
MSG: An error occurred during local report processing. 
SOURCE: Microsoft.ReportViewer.WinForms 
SITE: EnsureExecutionSession 
    at Microsoft.Reporting.WinForms.LocalReport.EnsureExecutionSession() 
    at Microsoft.Reporting.WinForms.LocalReport.SetParameters(IEnumerable`1 parameters) 
    at Ceoimage.Basecamp.MaintainDocumentIntegrity.ReportContainer._SetReportParameters(String departmentName, String footer) 
    at Ceoimage.Basecamp.MaintainDocumentIntegrity.ReportContainer._RefreshReport(DataTable sourceTable, String sourceName, String reportResourceName, String departmentName, String footer) 
    at Ceoimage.Basecamp.MaintainDocumentIntegrity.ReportContainer.ShowMissingReport(MissingFilesDataTable missingTable, String departmentName, String footer) 
    at Ceoimage.Basecamp.MaintainDocumentIntegrity.DocumentIntegrityForm._HandleMissingComplete(Object sender, RunWorkerCompletedEventArgs e) 

-- INNER EXCEPTION -- 
TYPE: Microsoft.Reporting.DefinitionInvalidException 
MSG: The definition of the report '' is invalid. 
SOURCE: Microsoft.ReportViewer.Common 
SITE: CompileReport 
    at Microsoft.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ControlSnapshot& snapshot) 
    at Microsoft.Reporting.LocalService.GetCompiledReport(PreviewItemContext itemContext, Boolean rebuild, ControlSnapshot& snapshot) 
    at Microsoft.Reporting.LocalService.CompileReport() 
    at Microsoft.Reporting.LocalService.Microsoft.Reporting.ILocalProcessingHost.CompileReport() 
    at Microsoft.Reporting.WinForms.LocalReport.EnsureExecutionSession() 

-- INNER EXCEPTION -- 
TYPE: Microsoft.ReportingServices.ReportProcessing.ReportProcessingException 
MSG: An unexpected error occurred in Report Processing. 
SOURCE: Microsoft.ReportViewer.Common 
SITE: CreateIntermediateFormat 
    at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext, IDataProtection dataProtection) 
    at Microsoft.Reporting.ReportCompiler.CompileReport(ICatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ControlSnapshot& snapshot) 

-- INNER EXCEPTION -- 
TYPE: System.IO.FileNotFoundException 
MSG: Could not load file or assembly 'Microsoft.SqlServer.Types, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified. 
SOURCE: Microsoft.ReportViewer.Common 
SITE: Write 
FILE: Microsoft.SqlServer.Types, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 
    at Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.IntermediateFormatWriter.Write(Object obj, Boolean verify, Boolean assertOnInvalidType) 
    at Microsoft.ReportingServices.ReportIntermediateFormat.ExpressionInfo.Serialize(IntermediateFormatWriter writer) 
    at Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.IntermediateFormatWriter.Write(IPersistable persistableObj, Boolean verify) 
    at Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.IntermediateFormatWriter.WriteVariantOrPersistable(Object obj) 
    at Microsoft.ReportingServices.ReportPublishing.ReportPublishing.CreateHashForCachedDataSets() 
    at Microsoft.ReportingServices.ReportPublishing.ReportPublishing.InternalCreateIntermediateFormat(Stream definitionStream, String& description, String& language, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash) 
    at Microsoft.ReportingServices.ReportPublishing.ReportPublishing.CreateIntermediateFormat(Byte[] definition, String& description, String& language, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash) 
    at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CompileOdpReport(PublishingContext reportPublishingContext, IDataProtection dataProtection, PublishingErrorContext errorContext, String& reportDescription, String& reportLanguage, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash) 
    at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CreateIntermediateFormat(PublishingContext reportPublishingContext, IDataProtection dataProtection) 

ho provato a fare funzionare il Report Viewer 2012 Redistributable, ma troppo lamenta Microsoft.SqlServer.Types. Non capisco perché ho questa nuova dipendenza anche se questo è un rapporto locale. Il codice non utilizza tipi di dati avanzati o altro oltre a ciò che utilizza nella versione .NET 3.5 che richiede solo questi tre assembly Microsoft.ReportViewer.*. Qualcuno può darmi un elenco limitato di requisiti per la distribuzione di un'app .NET 4.0 con Report Viewer?

risposta

5

Il collegamento fornito per Report Viewer 2012 Redistributable contiene alcune informazioni in fondo.

Ulteriori informazioni

pre-requisiti di Microsoft SQL Server 2008 Reporting Services o superiore per la modalità di elaborazione del server. NET Framework 3.5 SP1 o .NET Framework 4.0 Il pacchetto di tipi CLR del sistema SQL Server

Sembra che manchi il pacchetto dei tipi di CLR del sistema SQL Server. Può essere scaricato dal Feature Pack di SQL Server: questo è un collegamento all'ultimo elenco di programmi di installazione del feature pack.

http://www.microsoft.com/en-us/download/details.aspx?id=26728 Si vedrà più voci a seconda x86 ecc

Speriamo che questo vi aiuterà.

+0

Ma non riesco ancora a capire perché ho bisogno di "modalità di elaborazione server" per un report locale o, peraltro, quale sia la "modalità di elaborazione server". – flipdoubt

+0

Questa è la descrizione del pacchetto: Tipi di CLR del sistema Microsoft® per SQL Server® 2008 R2 Il pacchetto dei tipi CLR del sistema SQL Server contiene i componenti che implementano i tipi di identificazione di geometria, geografia e gerarchia in SQL Server 2008 R2. Questo componente può essere installato separatamente dal server per consentire alle applicazioni client di utilizzare questi tipi al di fuori del server. Quindi è necessario utilizzare uno di questi tipi nel report, quindi è necessario indipendentemente dal fatto che sia server o locale. –

+0

Poiché la risposta è "Sì", contrassegnerò questa risposta. Tuttavia, non ho apportato modifiche al rapporto che non richiedesse "questi tipi" in .NET 3.5. – flipdoubt

0

La ragione principale di questo errore è che il progetto o il file di installazione non è in grado di accedere a Report Viewer dll, quindi aggiungere tutti i seguenti file dll relted di ReportViewer manualmente

  1. Microsoft.ReportViewer.Common
  2. Microsoft.ReportViewer.ProcessingObjectModel
  3. Microsoft.ReportViewer.WinForms
  4. Microsoft.ReportViewer.DataVisualization

Ora spero che questo errore risolva facilmente.