将忽略对SSRS中自定义程序集的更改

时间:2015-09-17 11:52:26

标签: reporting-services .net-assembly ssrs-2012

我有自定义程序集,只有一个目的 - 它包含本地化字符串以及静态方法来读取它们。

程序集已成功安装在服务器(SSRS的bin文件夹)上,我已经创建了函数映射静态方法到自定义代码 - 一切正常。通过工作,我的意思是我可以使用这个程序集来读取字符串,当我创建本地化版本 - 它切换语言环境等...

但是,如果我更改或添加任何文本到程序集 - 部署它并确保部署正确的DLL文件SSRS似乎看不到这些更改。它看起来像SSRS(或IIS)以某种方式缓存此DLL。

  • 我确定DLL不在GAC中
  • 我确保DLL包含已更改/添加的文本
  • 我试图重启SSRS和整机 - 没有帮助
  • 我已经从整个机器中删除了DLL - 重新启动它 - 没有帮助

2 个答案:

答案 0 :(得分:1)

尝试在Reporting Service配置管理器中停止并启动ssrs。我认为这是在ssrs中清除自定义库缓存的唯一方法。

答案 1 :(得分:0)

从某些.NET版本看,GAC有2个物理位置:

C:\Windows\assembly

C:\Windows\Microsoft.NET\assembly\GAC_MSIL

我使用gacutil for .NET 4.0从GAC中删除了程序集,并确保它不在那里检查第二个位置,显然它没有从第一个位置删除程序集,因为它结果是程序集在那里。

解决方案是:

  1. 针对.NET 2.0或3.5构建库
  2. 清理两个物理位置
  3. 从SSRS文件夹中删除程序集
  4. 创建Windows安装包以正确安装GAC中的程序集
  5. 更新: The .NET Framework 4.x assemblies are not supported in SQL Server Reporting Services