我正在尝试在Report Builder 2.0中使用自定义程序集。我已通过报告属性>将程序集添加到报告中引用。当我尝试在程序集中调用公共静态方法时,我收到此消息:
'ExtractTag'不是'ReportsClassLibrary.ReportsClassLibraryTools'的成员。
我试图用来调用方法的表达式是:
=ReportsClassLibrary.ReportsClassLibraryTools.ExtractTag("ID", "ID:incorrect", false)
程序集中的方法签名是:
public static string ExtractTag(string tagToFind, string tags, bool caseSensitive)
该方法位于ReportsClassLibrary
命名空间和ReportsClassLibraryTools
类中。
我不知道出于某种原因我的报告是否正在查看没有此方法的旧版程序集,或者问题是否是其他问题。我尝试从报告中删除程序集,重建程序集,然后将其重新添加到报告中。
编辑:看起来像是一个更深层次的问题。我的程序集编译,但在运行调用该方法的测试用例时,测试失败并出现System.MissingMethodException。猜猜我遇到了汇编问题,而不是报表生成器问题......
答案 0 :(得分:0)
原来这是Vista中全局程序集缓存的问题。我的程序集的旧版本已缓存,因此新方法ExtractTag
不是程序集的一部分。我不得不跑:
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\gacutil.exe" /i bin\Debug\ReportsClassLibrary.dll