zoukankan      html  css  js  c++  java
  • Reporting Service中引用外部程序集生成二维码

    1、先将强命名的外部程序集注册到GAC(此处有坑,后面再说)

    先在数据库上找到gacutil.exe,然后用管理员身份打开命令提示符,并CD到程序集的位置,执行以下命令

    "C:Program Files (x86)Microsoft SDKsWindowsv8.1AinNETFX 4.5.1 Toolsx64gacutil.exe" -i QRCoder.dll

    "C:Program Files (x86)Microsoft SDKsWindowsv8.1AinNETFX 4.5.1 Toolsx64gacutil.exe" -i QRCoderImageToByteArray.dll

    2、在报表中使用外部程序集

    打开报表,打开工具栏的  报表——报表属性,引用GAC里的程序集,并添加自定义代码

     

     然后在报表中添加图片控件,设置图片控件的来源为数据库,

     =Code.QRCoderByteArray(Fields!LeadId.Value + "," + Fields!FullName.Value +"," +Fields!new_age.Value)

    然后就可以使用了

     处理过程中遇到的坑:

    1、开发环境是有gacutil.exe的,但是生产环境没有安装.net Framework和Microsoft Sdk,所以没有gacutil.exe注册Gac

    后来通过第三方的PowerShell Gac扩展解决,https://github.com/LTruijens/powershell-gac

    下载后找到Gac文件夹,打开PowerShell,通过$env:PSModulePath查找PS路径,并将Gac文件夹放到默认路径中,并执行Import-Module GAC,成功安装扩展

    然后在PowerShell里面执行Add-GacAssembly C:SignedPartiallyTrustedDLLsQRCoder.dll  将相应的dll添加到Gac

    2、reporting service支持的.net framework是2.0,3.5,而SQL Data Tool支持的是4.0,所以如果程序集是4.0的,会出现在SQL Data Tool中使用正常,但没法注册到CRM中的问题

    本来想通过把代码编译成framework 3.5的,但是代码的语法全是4.0的(主要是字符串都是用的$),尝试失败

    3、费了好大功夫,在Nuget里面找到了低版本的dll,但是发现是没有强签名的

    通过在Nuget中安装了Brutal.Dev.StrongNameSigner强制签名解决,然后将相关联的dll也通过代码重新编译为3.5的,并将这两个dll重新添加到GAC

    至此,终于完成

  • 相关阅读:
    经过改良后可以导出超过70000条数据的导出公共excel类
    一个简单的文档导出公共处理类
    网上找的正则验证邮箱手机等代码
    springMvc IE浏览器 前台中文参数 乱码问题解决方法
    国际化
    验证框架
    基于注解来装配Bean的属性
    aop
    自定义属性编辑器
    propertyPlaceholderConfigurer 和propertyOverrideConfigurer
  • 原文地址:https://www.cnblogs.com/liaochifei/p/12720537.html
Copyright © 2011-2022 走看看