报表查看器(Visual Studio)错误:使用带有RDLC报表的自定义程序集

时间:2014-10-08 17:10:50

标签: visual-studio-2010 visual-studio dll reporting-services reportviewer

  • 我正在尝试向报表查看器添加一个dll,以便我可以使用该dll中的方法解码其中一个字段内容(在报表中)。
  • 我在报告属性中添加了一个dll - >引用。
  • 类库中的所有方法(用于创建dll)都是静态的。
  • 该类库中类的内容:ABCClass.cs(用于创建dll ABCCollection.dll)

    namespace ABCCollection
        {
            public class ABCClass
            {
               public static string CustomFormatString(string s)
                { 
                     //perform some operation on s
                     return s;
                }
            }
         }
    

在Report1.rdlc中,我将字段的值用作:

=ABCCollection.ABCClass.CustomFormatString("testing")

但是一旦我运行此报告,我就会收到错误:

 Error while loading code module: ‘ABCCollection, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null’. Details: Could not load file or assembly 'ABCCollection, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

编译DLL时,检查项目属性给出的命名空间,通常它是项目的名称。在这种情况下,您实际上是两次定义命名空间。因此,要从创建的DLL中调用它,它将是:

ABCCollection.ABCCollection.ABCClass.CustomFormatString("测试&#34)

答案 1 :(得分:0)

实现它的唯一方法是将程序集添加到gac中。 有一个很好的例子here

最后,这一切都归结为:

  1. 创建一个单独的项目 ABCCollection.dll
  2. 使用visual studio项目属性窗口
  3. 签名,因为您希望能够将其添加到gac。
  4. gacutil -if“ABCCollection.dll的路径”
  5. 不要忘记将“ [assembly:AllowPartiallyTrustedCallers()] ”添加到您的ABCCollection / AssemblyInfo.cs文件中,否则您希望能够调用这些函数。
  6. 你完成了!