Benutzer mit den meisten Antworten
Reporting Services - Zugriff auf Assembly

Frage
-
Hallo zusammen,
ich versuche seit geraumer Zeit nun aus meinem Report auf eine Assembly zuzugreifen, die ich erstellt habe. Die DLL hab ich via Berichtseigenschaften -> Verweise hinterlegt; Klassen wurden nicht hinterlegt, da es sich um eine statische Klasse handelt. Der Zugriff erfolgt via
=Namespace.Klassenname.Methodenname(...)
Gemäß diversen Foren habe ich dann noch versucht, die DLL an den unterschiedlichsten Stellen abzulegen... direkt im Projektordner meines Reports, im bin-Unterordner des Projektordners, unter C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ mit oder ohne dem noch zusätzlichen Unterordner PublicAssemblies...
Leider scheitern bis heute alle Versuche, auf die Methoden der Assembly zuzugreifen mit folgender Fehlermeldung:
[rsErrorLoadingCodeModule] Fehler beim Laden des Codemoduls: 'AvgTimeCalc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Details: Die Datei oder Assembly "AvgTimeCalc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.
Zur Entwicklung verwende ich VS 2008 Pro, einen SQL Server 2008 R2 und den Designer der Microsoft SQL Server Reporting Services auf Version 10.50.1600.1.
Wäre über jegliche Hilfe dankbar, die mich der Problemlösung etwas näher bringen könnte. Sollten noch weitere Informationen benötigt werden, werde ich die natürlich gerne beantworten.Viele Grüße,
Matthias
Antworten
-
Hallo Matthias,
da die Fehlermeldung (in kurz) lautet, Assembly nicht gefunden,
liegt das Problem (zunächst) nicht an der Syntax.
Die Reporting Services finden die Assembly schlicht und einfach nicht...Gruß Elmar
- Als Antwort markiert Matthias CB Dienstag, 24. August 2010 13:43
-
Hi Elmar,
es scheint, als hätte ich das Problem gefunden.
Hatte nicht bedacht, dass es den Ornder "PrivateAssemblies" durch mein 64bit-OS einmal unter C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ und einmal unter C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ gibt. Zunächst hatte ich es nur im ersteren liegen, als ich die DLL nun noch in den zweiten Ordner kopiert hab, ging der Methodenaufruf im Report.
Sorry für die Umstände und vielen Dank für die Hilfe!
Viele Grüße,
Matthias
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 24. August 2010 13:50
Alle Antworten
-
Hallo Matthias,
Schau mal ob Dieses Tool Dir weiter helfen kann.
Assembly Binding Log Viewer (Fuslogvw.exe)
Hast Du versucht die Assembly auch hier kopieren? à
Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies (Visual Studio)
oder hier? à
Program Files\Microsoft SQL Server\MSSQL.2\Reporting Services\ReportServer\bin (Report Server)
Schau Dir mal auch die folgenden Links an. Vielleicht können sie Dir weiter helfen.
Adding custom code to Local Reports in Visual Studio.NET 2005 (Problems & Solutions)
Error while loading code module („Does it have any dependencies? If so, you'll need to be sure they get installed in the bin directory for SSRS, too.“)
Grüße,
Robert
-
Hi Robert,
vielen Dank für deine schnelle Antwort.
Hab die Assembly mal an die beiden von dir noch vorgeschlagenen Orte kopiert, leider weiter ohne Erfolg.
Den ersten Link kannte ich schon, da ist aber bei der Problemlösung nur die Variante von VS 2005 beschrieben, im 2008er seh ich - wie auch ein Kommentar beschrieben hat - keinerlei Möglichkeit, das Verhalten beim Erstellen zu ändern. Wenn ich die Eigenschaften zum Report-File öffne, seh ich nur den Namen und den Pfad... oder missverstehe ich den Autor und er meint ein anderes Fenster?
Einen manuell hinzugefügten Verweis hat meine Assembly nicht; muss ich die Standard-Assemblys System, System.Core, System.Data etc. auch händisch bei meinem Report einbinden?
Das Tool scheint eine nette Hilfe zu sein, leider reagiert es bei mir aber nicht. Ich hatte versucht, meinen Report nach dem Hinzufügen der Assembly via Vorschau zu öffnen, wobei dann der Fehler auftritt; dleiches wenn ich die Solution versuch zu übersetzen. Doch egal durch welche Variante der Fehler provoziert wird, im Log-Tool findet sich kein Eintrag, wobei ich die Einstellungen jeweils auf "Standard" beibehalten habe.
Vielen Dank für deine/eure Mühen und viele Grüße,
Matthias
-
Hallo Matthias,
lies Dir mal durch: Verwenden benutzerdefinierter Assemblys mit Berichten
Und auch Verwendung von benutzerdefinierten Assemblys oder eingebettetem Code in Reporting Services
Einige weitere hilfreiche Tipps enthält: Adding custom code to Local Reports in Visual Studio.NET 2005 (Problems & Solutions)
(Zwischen VS 2005/SSRS 2005 und VS 2008/SSRS 2008 (R2) gibt es da keine großen Unterschiede.)Gruß Elmar
-
Hallo Elmar,
vielen Dank für deine Anregungen.
Leider habe ich darin keinen Punkt gefunden, der mir wirklich weitergeholfen hat. Die Assembly hab ich wie beschrieben eingebunden, der Aufruf ist gemäß den Vorgaben für statische Elemente
=Namespace.Klassenname.Methodenname(...)
Hattest du in meinen Ausführungen einen Fehler entdeckt, auf den du mich mit den Links hinweisen wolltest, oder waren das "nur" hilfreiche Links zum Thema?
Viele Grüße,
Matthias
-
Hallo Matthias,
da die Fehlermeldung (in kurz) lautet, Assembly nicht gefunden,
liegt das Problem (zunächst) nicht an der Syntax.
Die Reporting Services finden die Assembly schlicht und einfach nicht...Gruß Elmar
- Als Antwort markiert Matthias CB Dienstag, 24. August 2010 13:43
-
Hi Elmar,
es scheint, als hätte ich das Problem gefunden.
Hatte nicht bedacht, dass es den Ornder "PrivateAssemblies" durch mein 64bit-OS einmal unter C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ und einmal unter C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ gibt. Zunächst hatte ich es nur im ersteren liegen, als ich die DLL nun noch in den zweiten Ordner kopiert hab, ging der Methodenaufruf im Report.
Sorry für die Umstände und vielen Dank für die Hilfe!
Viele Grüße,
Matthias
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 24. August 2010 13:50