Имеет ли WinForms ReportViewer дополнительные зависимости развертывания in.NET 4.0?

недавно я обновил приложение WinForms от .NET 3.5 до .NET 4.0, которое содержит локальные отчеты. Я включаю сборки версии 11.0 для Microsoft.ReportViewer.WinForms, Microsoft.ReportViewer.Common и Microsoft.ReportViewer.ProcessingObjectModel в каталоге приложений, что все, что потребовалось для развертывания этого приложения с помощью .NET 3.5, но я получаю следующую ошибку на целевой машине с .NET 4.0, но без VisualStudio или SQL Server:

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)

Я попытался запустить Report Viewer 2012 Распространяемый, но он тоже жалуется Microsoft.SqlServer.Types. Я не понимаю, почему у меня есть эта новая зависимость, хотя это локальный отчет. Код не использует никаких дополнительных типов данных или что-либо, кроме того, что он использует в версии .NET 3.5, которая требует только этих трех Microsoft.ReportViewer.* сборки. Может ли кто-нибудь дать мне конечный список требований для развертывания приложения .NET 4.0 с помощью средства просмотра отчетов?

3 ответов


ссылка, предоставленная для распространяемого средства просмотра отчетов 2012, содержит некоторую информацию в самом низу.

дополнительная информация

предварительные требования Microsoft SQL Server 2008 Reporting Services или выше для режима обработки сервера. NET Framework 3.5 SP1 или .NET Framework 4.0 пакет типов среды CLR системы SQL Server

похоже, что отсутствует пакет типов среды CLR системы SQL Server. Его можно загрузить из пакета компонентов SQL Server - вот ссылка на последний список установщиков пакета функций.

http://www.microsoft.com/en-us/download/details.aspx?id=26728 вы увидите несколько списков в зависимости от x86 и т. д.

надеюсь, это поможет.


основная причина этой ошибки заключается в том, что файл проекта или установки не может получить доступ к dll Report viewer, поэтому добавьте все следующие dll-файлы, связанные с reportviewer вручную

  1. Microsoft.Элемент управления reportviewer.Common
  2. Microsoft.Элемент управления reportviewer.ProcessingObjectModel
  3. Microsoft.Элемент управления reportviewer.Приложения WinForms
  4. Microsoft.Элемент управления reportviewer.DataVisualization

Теперь Я Надеюсь, Что Эта Ошибка Легко Решить .


в Управление пакетами NuGet добавьте:

  1. Microsoft.От SQLServer.Типы
  2. Microsoft.Элемент управления reportviewer.Окно.