Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssrs 2008 在SSRS 2008R2下引用System.Core(4.0)时,如何解决报表部署错误_Ssrs 2008_Reporting Services - Fatal编程技术网

Ssrs 2008 在SSRS 2008R2下引用System.Core(4.0)时,如何解决报表部署错误

Ssrs 2008 在SSRS 2008R2下引用System.Core(4.0)时,如何解决报表部署错误,ssrs-2008,reporting-services,Ssrs 2008,Reporting Services,前言: 开发环境:Visual Studio 2010,带有本地框上的BIDS+MSSQL 2012 生产环境:MSSQL 2008 R2 For Live Report Server 在引用报表中的System.Core时,部署报表时遇到问题。错误如下 加载代码模块时出错:“System.Core,Version=4.0.0.0, 区域性=中性,PublicKeyToken=b77a5c561934e089'。详情:未能 加载文件或程序集'System.Core,版本=4.0.0.0,区域性=

前言:

开发环境:Visual Studio 2010,带有本地框上的BIDS+MSSQL 2012

生产环境:MSSQL 2008 R2 For Live Report Server

在引用报表中的System.Core时,部署报表时遇到问题。错误如下

加载代码模块时出错:“System.Core,Version=4.0.0.0, 区域性=中性,PublicKeyToken=b77a5c561934e089'。详情:未能 加载文件或程序集'System.Core,版本=4.0.0.0,区域性=中性, PublicKeyToken=b77a5c561934e089'或其依赖项之一。这 程序集由比当前加载的运行时更新的运行时生成 无法加载

我在报告中引用System.Core,以便使用TimeZoneInfo类。我看到过关于在SSRS中使用该类的其他问题,但我无法按照这些问题中的任何建议解决该问题

REF

我可以参考System.Core 4.0并在本地运行,没有任何问题;但是,当我部署时,会收到上面的错误消息。进一步澄清。。这发生在部署过程中,而不是在服务器上部署并尝试运行报表之后

编辑

CodeModules的RDL xml报告如下所示:

<CodeModules>
<CodeModule>System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

System.Core,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089

这是我能说的最多的“嵌入”。从外观上看,它实际上只是对程序集的引用

我们将不胜感激

解决方案 由于不能引用4.0,因此可以引用3.5来访问TimeZoneInfo类

第一步。为要使用的TimeZoneInfo逻辑创建包装器类

第二步。具体目标3.5

第三步。生成发布版本并将其复制到[DRIVE]:\Program Files(x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateSassemblies目录,以便设计者可以加载它

第四步。将同一程序集部署到SQL Server@以下文件夹 [驱动器]:\Program Files\Microsoft SQL Server\MSRS10.SQL2008\Reporting Services\ReportServer\bin\

现在您可以部署报表了。 所以我的错误如下

  • 我没有参考3.5

  • 我没有复制到visual studio实例拾取程序集的正确目录。我已将安装移到另一个目录,但没有将其放在新路径中

  • 更新 如果有人试图引用.NET 4.0 ins SSRS 2012及以上版本,但仍然得到错误,答案很简单。SSRS 2012和2014(?)仍然不支持.NET 4.0

    这一条似乎表明SSRS 2014也不支持它(我说不出话来,微软!)

    根据要求:

    解决方案

    由于不能引用4.0,因此可以引用3.5来访问TimeZoneInfo类

    第一步。为要使用的TimeZoneInfo逻辑创建包装器类

    第二步。具体目标3.5

    第三步。生成发布版本并将其复制到[DRIVE]:\Program Files(x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateSassemblies目录,以便设计者可以加载它

    第四步。将同一程序集部署到SQL Server@以下文件夹[驱动器]:\Program Files\Microsoft SQL Server\MSRS10.SQL2008\Reporting Services\ReportServer\bin\

    现在您可以部署报表了。所以我的错误如下

    我没有参考3.5


    我没有复制到visual studio实例拾取程序集的正确目录。我已将安装移动到另一个目录,但没有将其放入新路径。

    是否已尝试放置正在使用的程序集版本,以便报表设计器能够访问该程序集。可能是部署过程正在使用..\Visual Studio 8\Common7\IDE\PrivateSassemblies文件夹而不是报表服务器文件夹执行版本检查。我确信这就是SSRS在设计时寻找嵌入式程序集的地方。这可能是一个警告,而不是错误。程序集是GAC中的System.Core。这就是为什么我如此困惑。如果它在GAC中,为什么不被“拾取”?因为报表呈现和处理不像web/form应用程序那样依赖.NET,我想SSRS会将.rdl中的任何嵌入式程序集视为自定义程序集。恐怕是这样。我使用4.0.0.0程序集进行了快速测试,收到了相同的错误。2.0.0.0版本的程序集运行良好。如果您的目标服务器安装了4.0,那么您可以创建自己的程序集并引用4.0系统。核心包装您需要的。详细说明在本地和远程服务器上放置代码模块的步骤是非常宝贵的提示。