[英]SSRS 2016 Custom Assembly Deployment Not Working
我有一个使用 VS2017 用 C# 编写的非常简单的自定义程序集,该程序集正在部署到 Microsoft SQL Server Reporting Services 版本 13.0.4435.0,在 Windows 10 机器上与 SQL Server 2016 (SP1-CU3) (KB4019916) 一起运行。
下面是这个“Hello World”自定义程序集的 C# 代码:
Namespace MyCustomAssembly
{
public class HellowWorldClass
{
public static string HellowWorld()
{
return "Hello World!";
}
}
}
Microsoft 描述了部署自定义程序集的分步过程:
https://docs.microsoft.com/en-us/sql/reporting-services/custom-assemblies/deploying-a-custom-assembly
按照流程中的步骤,我发现的第一件事是报表设计器的默认目录不同。 在尝试了各种文件夹后,有效的目的地如下:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\SSRS
在此目录中存放自定义程序集 DLL 后,报告预览按预期工作。 这提供了对报告文本框中的表达式定义正确的验证。
按照流程,要在服务器上部署自定义程序集,DLL 应放置在以下目标中,并针对特定 SSRS 版本进行调整:
C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer\bin
然后,该过程描述了扩展自定义程序集权限的步骤,但这个简单的示例不需要这样做。 执行权限应该足够了。 因此,应该不需要修改 rssrvpolicy.config。
当我尝试通过在 VS2017 的解决方案资源管理器中右键单击报告并选择“部署”来将报告部署到服务器时,我收到以下消息(仅此文本):
The definition of the report '/HelloWorldReport' is invalid.
如果我删除包含对自定义程序集中的 HelloWorld 函数的引用的文本框,报告将成功部署到服务器。 因此,虽然消息中没有关于报告无效原因的更多信息,但它似乎与服务器上的自定义程序集相关联。
这是我尝试过的:
上述努力都没有奏效。
我可以共享 RDL 文件或其他可能有助于识别问题的材料,但我不认为问题出在报告定义上,因为如果删除对自定义程序集中函数的引用,报告将被部署。 而且我不认为问题出在自定义程序集上,因为预览在 VS2017 环境中有效。 必须与服务器有关,但错误消息非常不透明。
这是我第一次接触 SO 社区。 我通常是保留的,有些犹豫。 然而,事实证明,其他人的经验对于克服过去的发展挑战很有价值,我很感激。 但是这次我真的被难住了。 似乎没有人有过这种我能找到的确切经验,而且我已经进行了详尽的搜索。 如果解决方案结果是一个简单的疏忽或一些值得嘲笑的基本无知,我几乎不担心。 我只需要一个对其他人来说似乎不是问题的解决方案。
参考以下网址解决:
将自定义 DLL 复制到开发人员计算机上的此文件夹C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\Common7\\IDE\\PrivateAssemblies
。
一种有效的解决方案是使用报表管理器添加报表,而不是从 Visual Studio 部署。
刚刚遇到了与此处描述的相同的问题。
对我来说,问题是 DLL 必须位于部署报告的机器上的两个文件夹中:
为了让 DLL 在开发过程中工作:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7
\IDE\CommonExtensions\Microsoft\SSRS
并且能够部署报告:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7
\IDE\PrivateAssemblies
当然,在服务器上,DLL 也必须在ReportServer\\Bin
文件夹中
另外,我看到过关于程序集必须是 .NET 4.0 的帖子,但对我来说情况并非如此......我的是 3.5
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.