【问题标题】:Report Viewer(Visual Studio) Error: use a custom assembly with a RDLC report报告查看器(Visual Studio)错误:使用带有 RDLC 报告的自定义程序集
【发布时间】:2014-12-03 10:46:11
【问题描述】:
  • 我正在尝试向报表查看器添加一个 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.

有人可以帮我解决这个问题吗?

【问题讨论】:

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


    【解决方案1】:

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

    ABCCollection.ABCCollection.ABCClass.CustomFormatString("测试")

    【讨论】:

      【解决方案2】:

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

      最后,一切都归结为:

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

      你就完成了!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-10
        • 2018-11-11
        • 1970-01-01
        • 2011-12-29
        相关资源
        最近更新 更多