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

Changes to custom assembly in SSRS are ignored

我的自定义程序集仅用于 1 个目的 - 它包含本地化字符串以及读取它们的静态方法。

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

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

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

从某些 .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 中正确安装程序集

更新: The .NET Framework 4.x assemblies are not supported in SQL Server Reporting Services