在 SSRS 报告中添加自定义库时无法加载文件或程序集错误
Could not load file or assembly error on adding custom libraries in SSRS reports
我创建了一个自定义库 (CodeLibrary),它在内部引用 dll Microsoft.TeamFoundation.Client 和 Microsoft.TeamFoundation.WorkItemTracking.Client。
我将此自定义 Dll codelibrary.dll 添加到我的 SSRS 报告中。以及其中一个字段的表达式
=codelibrary.codefunction.GetValue(1000)
codefunction 是 class,GetValue 是方法。
当我预览报表时,出现错误 "Error while loading code module: 'CodeLibrary,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null'. Could not load file or assembly 'CodeLibrary,Version1.0.0.0, Culture=neutral,PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified."
我用的是VS2013,我把自定义库DLL放到了路径
C:\程序Files\MicrosoftVisual Studio12.0\Common7\IDE\PrivateAssemblies
我已经使用 WPF 应用程序测试了自定义库,它工作正常。
我无法弄清楚是什么导致了这个错误。
您应该将自定义库复制到 ReportServer\Bin 文件夹,例如:C:\Program Files\Microsoft SQL Server\MSRS10_50.R2\Reporting Services\ReportServer\bin
然后修改ReportServer文件夹下的rssrvpolicy.config,找到“$CodeGen$”添加如下代码
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="CoDeMagSample"
Description="CoDe Magazine Sample. ">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.R2\Reporting Services\ReportServer\bin\YOURLIBRARY.dll"
/>
之后,从报告服务配置管理器停止和启动报告服务。
希望对您有所帮助。
我不必修改 rssrvpolicy.config 文件。
我将自定义 dll 添加到以下路径并且它有效:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies
C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin
在 visual studio 2015 年,我不得不将 dll 复制到:
C:\Program Files (x86)\MSBuild.0\Bin
添加 - 在 Visual studio 2019 年,我将 dll 复制到:
C:\Program Files (x86)\Microsoft Visual Studio19\Professional\Common7\IDE\CommonExtensions\Microsoft\SSRS
我创建了一个自定义库 (CodeLibrary),它在内部引用 dll Microsoft.TeamFoundation.Client 和 Microsoft.TeamFoundation.WorkItemTracking.Client。
我将此自定义 Dll codelibrary.dll 添加到我的 SSRS 报告中。以及其中一个字段的表达式
=codelibrary.codefunction.GetValue(1000)
codefunction 是 class,GetValue 是方法。
当我预览报表时,出现错误 "Error while loading code module: 'CodeLibrary,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null'. Could not load file or assembly 'CodeLibrary,Version1.0.0.0, Culture=neutral,PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified."
我用的是VS2013,我把自定义库DLL放到了路径 C:\程序Files\MicrosoftVisual Studio12.0\Common7\IDE\PrivateAssemblies
我已经使用 WPF 应用程序测试了自定义库,它工作正常。
我无法弄清楚是什么导致了这个错误。
您应该将自定义库复制到 ReportServer\Bin 文件夹,例如:C:\Program Files\Microsoft SQL Server\MSRS10_50.R2\Reporting Services\ReportServer\bin
然后修改ReportServer文件夹下的rssrvpolicy.config,找到“$CodeGen$”添加如下代码
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="CoDeMagSample"
Description="CoDe Magazine Sample. ">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.R2\Reporting Services\ReportServer\bin\YOURLIBRARY.dll"
/>
之后,从报告服务配置管理器停止和启动报告服务。
希望对您有所帮助。
我不必修改 rssrvpolicy.config 文件。 我将自定义 dll 添加到以下路径并且它有效:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin
在 visual studio 2015 年,我不得不将 dll 复制到:
C:\Program Files (x86)\MSBuild.0\Bin
添加 - 在 Visual studio 2019 年,我将 dll 复制到: C:\Program Files (x86)\Microsoft Visual Studio19\Professional\Common7\IDE\CommonExtensions\Microsoft\SSRS