2017-01-10 5 views
0

Wenn ich den Berichts-Viewer mit Visual Studio ausführen möchte, wird der folgende Fehler verursacht.SSRS - Report Viewer-Kompilierungsfehler

============================================== ====================== Kompilierungsfehler

Beschreibung: Bei der Kompilierung einer Ressource ist ein Fehler aufgetreten, der für die Bearbeitung dieser Anforderung erforderlich ist . Bitte überprüfen Sie die folgenden spezifischen Fehlerdetails und ändern Sie Ihren Quellcode entsprechend.

Compiler Error Message: CS0433: The type 'Microsoft.Reporting.WebForms.ReportViewer' exists in both 'c:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\10.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebForms.dll' and 'c:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\11.0.0.0__89845dcd8080cc91\Microsoft.ReportViewer.WebForms.DLL'

Quellfehler:

[System.Diagnostics.DebuggerNonUserCodeAttribute()] 
     private global::Microsoft.Reporting.WebForms.ReportViewer @__BuildControlReportViewerSummary() { 
      global::Microsoft.Reporting.WebForms.ReportViewer @__ctrl; 

Ist das meine ich die fehlende DLL-Datei ???

Vielen Dank.

Antwort

0

Das Problem hat nichts mit fehlender DLL-Datei zu tun, stattdessen sollte es mit demselben ReportViewer-Namespace in verschiedenen DLL-Dateien im selben Verzeichnis (% Windows% \ assembly) verknüpft sein. Versuchen Sie folgende Lösungen:

  1. prüfen ältere Version von ReportViewer in _bin_deployableAssemblies Verzeichnis. Löschen Sie alle damit verbundenen Dateien und verwenden Sie Microsoft.ReportViewer.11.0 Referenzen.

  2. Überprüfen Sie doppelte Deklarationen von Microsoft.ReportViewer.WebForms Namespace in der Datei web.config, entfernen Sie ältere, wenn vorhanden.

  3. hinzufügen qualifyAssembly Element in web.config-Datei:

    <qualifyAssembly partialName="Microsoft.ReportViewer.WebForms" fullName="Microsoft.ReportViewer.WebForms,version=11.0.0.0,culture=neutral,publicKeyToken=89845dcd8080cc91" /> 
    
  4. Wenn das Problem weiterhin besteht, alle Verweise auf Microsoft.ReportViewer.WebForms Namespace, saubere gesamte Lösung (Löschen von DLL-Dateien verwiesen auf ältere Version) im Zusammenhang entfernen, hinzufügen Neue Referenzen mit der neuesten Version erstellen dann die Lösungsdatei neu. Außerdem können Sie versuchen, eine der konfliktbehafteten DLL-Dateien aus dem Assemblyverzeichnis zu entfernen/zu deinstallieren.

NB: Denken Sie daran, dass beide Versionen (10.0 & 11.0) unterschiedlichen PublicKeyToken Eigenschaftswert, daher bindingRedirect Trick in dependentAssembly Knoten funktionieren nicht.

ähnliche Probleme mit CS0433:

C#: The type 'Microsoft.Reporting.WebForms.ReportViewer' exists in both ReportingServicesWebUserInterface.dll and Microsoft.ReportViewer.WebForms.dll

The type 'Microsoft.Reporting.WebForms.ReportViewer' exists in both