一、先將強命名的外部程序集註冊到GAC(此處有坑,後面再說)git
先在數據庫上找到gacutil.exe,而後用管理員身份打開命令提示符,並CD到程序集的位置,執行如下命令github
"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\gacutil.exe" -i QRCoder.dllshell
"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\gacutil.exe" -i QRCoderImageToByteArray.dll數據庫
二、在報表中使用外部程序集工具
打開報表,打開工具欄的 報表——報表屬性,引用GAC裏的程序集,並添加自定義代碼ui
而後在報表中添加圖片控件,設置圖片控件的來源爲數據庫,.net
=Code.QRCoderByteArray(Fields!LeadId.Value + "," + Fields!FullName.Value +"," +Fields!new_age.Value)3d
而後就能夠使用了blog
處理過程當中遇到的坑:圖片
一、開發環境是有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:\SignedPartiallyTrustedDLLs\QRCoder.dll 將相應的dll添加到Gac
二、reporting service支持的.net framework是2.0,3.5,而SQL Data Tool支持的是4.0,因此若是程序集是4.0的,會出如今SQL Data Tool中使用正常,但無法註冊到CRM中的問題
原本想經過把代碼編譯成framework 3.5的,可是代碼的語法全是4.0的(主要是字符串都是用的$),嘗試失敗
三、費了好大功夫,在Nuget裏面找到了低版本的dll,可是發現是沒有強簽名的
經過在Nuget中安裝了Brutal.Dev.StrongNameSigner強制簽名解決,而後將相關聯的dll也經過代碼從新編譯爲3.5的,並將這兩個dll從新添加到GAC
至此,終於完成