Vorwort:
Entwicklungsumgebung: Visual Studio 2010 mit BIDS + MSSQL 2012 auf lokaler Box
Produktionsumgebung: MSSQL 2008 R2 für den Live-Berichtsserver
Ich habe ein Problem mit der Bereitstellung eines Berichts beim Verweisen auf System.Core in meinem Bericht. Der Fehler ist unten.
Fehler beim Laden des Codemoduls: 'System.Core, Version = 4.0.0.0, Kultur = neutral, PublicKeyToken = b77a5c561934e089 '. Details: Konnte nicht Datei oder Baugruppe laden 'System.Core, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 'oder eine seiner Abhängigkeiten. Dies Assembly wird von einer Laufzeit erstellt, die neuer ist als die aktuell geladene Laufzeit und kann nicht geladen werden.
Ich verweise auf die System.Core in meinem Bericht, damit ich die TimeZoneInfo-Klasse verwenden kann. Ich habe weitere Fragen zur Verwendung dieser Klasse in SSRS gesehen, und ich konnte das Problem nicht lösen, nachdem ich in diesen Fragen Ratschläge erhalten hatte.
REF
Arbeiten mit Zeitzonen in SSRS
SSRS 2k8, benutzerdefinierte dll, Datei nicht gefunden
Reporting Services 2012-Bereitstellungsfehler: "Fehler während Ladecode-Modul "
Ich kann den System.Core 4.0 referenzieren und lokal ohne irgendein Problem laufen; Bei der Bereitstellung wird jedoch die obige Fehlermeldung angezeigt. Um dies weiter zu verdeutlichen, geschieht dies während des Bereitstellungsprozesses, nicht nach der Bereitstellung und dem Versuch, den Bericht auf dem Server auszuführen.
BEARBEITEN
Der Report RDL xml für CodeModule sieht folgendermaßen aus:
%Vor%
Das ist ungefähr soviel "Einbettung", wie ich sagen kann. Es ist wirklich nur ein Hinweis auf die Montage von den Looks davon.
Hilfe wäre sehr willkommen.
LÖSUNG Da Sie 4.0 nicht referenzieren können, können Sie auf 3.5 verweisen, um auf die TimeZoneInfo-Klasse zuzugreifen.
Schritt 1. Erstellen Sie eine Wrapper-Klasse für die TimeZoneInfo-Logik, die Sie verwenden möchten
Schritt 2. Ziel 3.5
Schritt 3. Erstellen Sie eine Release-Version, und kopieren Sie sie in das Verzeichnis [DRIVE]: \ Programme (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PrivateAssemblies, damit Ihr Designer sie laden kann
Schritt 4. Stellen Sie dieselbe Assembly auf dem SQL Server @ folgenden Ordner bereit [DRIVE]: \ Programme \ Microsoft SQL-Server \ MSRS10.SQL2008 \ Reporting Services \ ReportServer \ bin \
Jetzt können Sie Ihren Bericht bereitstellen. Also meine Fehler waren die folgenden
Ich habe 3.5 nicht erwähnt
Ich habe nicht in das richtige Verzeichnis für meine Visual Studio-Instanz kopiert, um die Assembly aufzunehmen. Ich hatte meine Installation in ein anderes Verzeichnis verschoben, und ich habe es nicht in den neuen Pfad eingefügt.
UPDATE Wenn jemand versucht, .NET 4.0 in SSRS 2012 und höher zu referenzieren und immer noch einen Fehler erhält, ist die Antwort einfach. SSRS 2012 und 2014 (?) Unterstützen noch nicht .NET 4.0
Dies deutet darauf hin, dass die SSRS 2014 es auch nicht unterstützt (ich bin sprachlos, MICROSOFT!) MS KB
Wie gewünscht:
LÖSUNG
Da Sie 4.0 nicht referenzieren können, können Sie auf 3.5 verweisen, um auf die TimeZoneInfo-Klasse zuzugreifen.
Schritt 1. Erstellen Sie eine Wrapper-Klasse für die TimeZoneInfo-Logik, die Sie verwenden möchten
Schritt 2. Ziel 3.5
Schritt 3. Erstellen Sie eine Release-Version und kopieren Sie sie in das Verzeichnis [DRIVE]: \ Programme (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PrivateAssemblies, damit Ihr Designer sie laden kann
Schritt 4. Stellen Sie die gleiche Assembly auf dem SQL Server im folgenden Ordner [DRIVE]: \ Programme \ Microsoft SQL Server \ MSRS10.SQL2008 \ Reporting Services \ ReportServer \ bin \
bereitJetzt können Sie Ihren Bericht bereitstellen. Also meine Fehler waren die folgenden
Ich habe 3.5 nicht erwähnt
Ich habe nicht in das richtige Verzeichnis für meine Visual Studio-Instanz kopiert, um die Assembly aufzunehmen. Ich hatte meine Installation in ein anderes Verzeichnis verschoben, und ich habe es nicht in den neuen Pfad eingefügt.
Tags und Links reporting-services ssrs-2008