5

Re:報告定義無效。詳細信息:報告定義中有一個無效的目標名稱空間'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition',無法升級。Visual Studio 2010:報告定義無效。詳細信息:報告定義有一個無效目標

報告專家需要,光束超過...

下面是我通過今天去完成愚蠢的該位的步驟。

1)Visual Studio 2010中,使用SQL Server 2012

2)應用程序是一個WinForms vb.net,一直很大,最初是在VS 2008年開發的

報告精細這種AM我跑前找到了他們。 -sigh-

3)嘗試編輯少數報告 - 以來的首次升級到SQL 2012

4)無法編輯的數據集,並決定什麼是腐敗。

5)在VS 2010上進行修復安裝,確保它完全保持最新狀態。沒有喜悅 - 無法更新數據集。

6)重新運行安裝用於SQL SSMS與另外SDK的用於連接客戶

7)現在我可以編輯的報告數據集,但報告是壞了。 (見標題)-double sigh-

報告觀衆10.0.0

.NET是4.0

感謝您的任何提示

的Mac McCaskie

回答

2

我想修正可能會如果我記得正確的話,比你預期的要簡單。您的名字空間只需要更改以引用較新的服務。據我所知,你不能在2008年的命名空間上運行2012年。我很困惑,因爲你提到的'Winforms'應用程序通過一種通常以多種方式設置的查看器處理間接與SQL報告服務交談。如果是這種情況,請按照下面的步驟A進行操作,但是您會提到直接編輯報告,所以我很好奇這些客戶端報告是直接在應用程序中進行報告的嗎?如果是這樣的話,我會假設您是在使用RDL報告談論SSRS 2012,並且在這種情況下,如果這是針對使用從SQL 2012創建的VS 2010上的Business Intelligence Development Studio添加創建的報告託管報告,我會嘗試B.如果您正在討論在VB.NET應用程序中本地存儲的客戶端報告,我可能會猜測他們可能已升級到2012年使用.NET 4.5,而您可能正在嘗試較低的框架,但這只是對最後一個的猜測而且不太可能,因爲.NET帶有以前的版本,我不認爲它會在沒有告訴你的情況下升級報告。

答:

您可以重新安裝2012永遠但不能得到它使用2008的命名空間數據。您需要使用2012年有效服務中的最新代理類,並將它們放入C#/ VB.NET項目中。如果你不知道如何下載和適應代理類我這裏就可以了更詳細的線索:Programmatically Export SSRS report from sharepoint using ReportService2010.asmx

// 
// This source code was auto-generated by xsd, Version=4.0.30319.17929. 
// 
namespace SampleRDLSchema { 
    using System.Xml.Serialization; 

/// <remarks/> 
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.17929")] 
    [System.SerializableAttribute()] 
    [System.Diagnostics.DebuggerStepThroughAttribute()] 
    [System.ComponentModel.DesignerCategoryAttribute("code")] 
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition")] 
    [System.Xml.Serialization.XmlRootAttribute(Namespace="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition", IsNullable=false)] 

B.

  1. 在'RDL'報告的磁盤上找到本地副本並複製它。
  2. 取出副本,並用文本編輯器打開它,我會使用Notepad ++或類似的東西。
  3. RDL作爲一種語言對我來說並沒有真正改變那麼多,(我甚至沒有看到2008R2和2012之間的設計師差異)。所以沿着這條線你可以嘗試一下黑客,看看它是否可以工作。編輯「<報告」的節點頂部附近是這個:

    < Report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:cl="http://schemas.microsoft.com/sqlserver/reporting/2010/01/componentdefinition" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition"> 
    
5

我今天在VS2013有這個問題。

一定要引用正確的ReporViewer DLL版本:

C:\ Program Files文件(x86)的\微軟的Visual Studio 12.0 \的ReportViewer \

+0

優秀。這正是問題所在。在我的情況下工作。非常感謝 :) ! – Bharath

0

馬里奧Meyrelles是正確的。

這一切都是關於Microsoft.ReportViewer.Common.dll和Microsoft.ReportViewer.WinForms.dll版本。請確保您提到了正確或最新的dll版本。例如對於VS2013,我們應該使用版本11

C:\ WINDOWS \裝配\ GAC_MSIL \ Microsoft.ReportViewer.Common \ 11.0.0.0__89845dcd8080cc91 \ Microsoft.ReportViewer.Common.dll

C:\ WINDOWS \總成\ GAC_MSIL \ Microsoft.ReportViewer.WinForms \ 11.0.0.0__89845dcd8080cc91 \ Microsoft.ReportViewer.WinForms.dll

0

我曾與SQL2008 R2 所有項目文件開始報告項目採用的模式:

我的報表服務器SQL2008 R2不和部署的報告導致錯誤:

The report definition is not valid. Details: The report definition has an invalid target namespace

關鍵是要設置項目TargetServerVersion到SQL 2008和建設。然後在Bin \ Release文件夾中的所有文件都會有正確的模式,如

<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/ 

enter image description here

相關問題