9

Visual Studio 2008でプロジェクトを作成し、その上にRDLCファイルを作成しました。しかし、今、Visual Studio 2010でソリューションを開き、RDLCファイルを開きたい場合、警告が表示されます。

それは少し面白いです。レポートはVS2008で作成され、VS2010は2008形式への変換を要求しています。おそらく、VS2008のインストールで、古い形式を使用してRDLCファイルを作成する問題が発生しました(2005 ??!)

問題は、[OK]ボタンで確認し、いくつかの設計調整を行ってアプリを実行すると、[メインレポート]でエラーがスローされることです。

ex.InnerException
{"The definition of the report 'Main Report' is invalid."}
    [Microsoft.Reporting.DefinitionInvalidException]: {"The definition of the report 'Main Report' is invalid."}
    Data: {System.Collections.ListDictionaryInternal}
    HelpLink: null
    InnerException: {"The report definition is not valid.  Details: The report definition has an invalid target namespace 'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition' which cannot be upgraded."}
    Message: "The definition of the report 'Main Report' is invalid."
    Source: "Microsoft.ReportViewer.Common"
    StackTrace: "   at Microsoft.Reporting.ReportCompiler.CompileReport(CatalogItemContext context, Byte[] reportDefinition, Boolean generateExpressionHostWithRefusedPermissions, ReportSnapshotBase& snapshot)\r\n   at Microsoft.Reporting.StandalonePreviewStore.StoredReport.CompileReport()\r\n   at Microsoft.Reporting.StandalonePreviewStore.StoredReport.get_Snapshot()\r\n   at Microsoft.Reporting.StandalonePreviewStore.GetCompiledReport(CatalogItemContext context, Boolean rebuild, ReportSnapshotBase& snapshot)\r\n   at Microsoft.Reporting.LocalService.GetCompiledReport(CatalogItemContext itemContext, Boolean rebuild, ReportSnapshotBase& snapshot)\r\n   at Microsoft.Reporting.LocalService.CompileReport(CatalogItemContext itemContext, Boolean rebuild)\r\n   at Microsoft.Reporting.WinForms.LocalReport.CompileReport()"
    TargetSite: {Microsoft.ReportingServices.ReportProcessing.PublishingResult CompileReport(Microsoft.ReportingServices.Diagnostics.CatalogItemContext, Byte[], Boolean, Microsoft.ReportingServices.Library.ReportSnapshotBase ByRef)}
4

5 に答える 5

10

以前のバージョンのrdlcをVS2010に変換するときに、同様の問題が発生します。変換は正常です。必要なのは、Microsoft.ReportViwer.Commonへの参照をバージョン9からバージョン10に変更する必要があることです。Microsoft.ReportViewer.WebFormsでも同じことを行います。また、web.configおよびReportViewerコントロールを含むページのバージョン9のすべての参照をバージョン10に変更する必要があります。これにより、すべての問題が解決され、VS2010でレポートを変更できるようになりました。

于 2012-03-22T14:32:22.753 に答える
5

これは、回答として設定されている返信よりもはるかに簡単です...

プロジェクトから ReportViewer への参照を削除し (これらはまだバージョン 9 を指しているため)、参照を追加して、バージョン 10 の ReportViewer 参照を選択するだけです。

于 2012-06-28T10:32:23.993 に答える
2

バージョンについての混乱を解消するためだけに:

Visual Studio 2008がリリースされたとき、RDL2008スキーマはリリースされませんでした。したがって、VS2008はRDL2005スキーマのみをサポートしていました。RDL2008スキーマはVS2010でサポートされています。RDLスキーマはVisualStudioバージョンより1バージョン遅れており、ご覧のとおり、混乱の根本的な原因となる場合があります。

于 2010-09-13T14:07:21.127 に答える
1

これが回避策です。

  • VS2010 でレポートを変換または編集しないでください (何か問題があります)。

  • Report Viewer 2008 のインストール インストール

  • SQL Server ビジネス インテリジェンス スタジオ 2008

  • SQL Server Business Intelligence で、レポート用の空のプロジェクトを作成します

  • ファイル拡張子の名前を .rdl に変更し、既存の rdl ファイルをこのプロジェクトに追加します。

  • プロジェクトをビルドしてデプロイする

于 2010-07-01T19:14:28.280 に答える
0
<httpHandlers>
  <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
  <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
</httpHandlers>

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <handlers>
        <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    </handlers>
</system.webServer>
于 2012-05-29T13:42:10.760 に答える