无法在Visual Studio 2017下加载SSRS自定义程序集

时间:2017-04-20 13:06:00

标签: reporting-services visual-studio-2017

我刚刚安装了VS 2017并将我的SSRS项目从VS 2015移至2017年。我有一个定制组件,在VS 2015下工作正常,但不是2017年。它说

  

加载代码模块时出错:'CustomLib,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'。详细信息:无法加载文件或程序集“CustomLib,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null”或其依赖项之一。该系统找不到指定的文件。

我在VS 2015下遇到了完全相同的问题,解决方案是在

下移动我的自定义dll
  

C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ PrivateAssemblies

所以,我已经将我的自定义dll移到

下了
  

C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ PrivateAssemblies

我认为这是VS 2017的正确路径并检查文件/文件夹权限并将它们设置为相同,但没办法,它仍然会抛出相同的错误。

我错过了什么?

3 个答案:

答案 0 :(得分:8)

现在需要两个dll位置 - 第一个适用于新VS2017 RS项目,但升级后的项目也需要第二个位置的dll:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS 
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\PrivateAssemblies

答案 1 :(得分:2)

TLDR - C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ CommonExtensions \ Microsoft \ SSDTRS

我遇到了同样的问题 - 尝试使用Fusion Assembly Binding Log Viewer根据http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx

查看问题所在

启用“磁盘日志绑定失败”(并重新启动VS)后,日志位置中的devenv.exe进程文件夹应在重新生成问题时生成日志文件。它告诉你的部分原因是VS正在检查程序集的各种文件夹位置。我的问题是我没有复制所需的程序集。你也可能遇到问题,不喜欢它试图加载的dll的特定版本(例如.Net 4 v 2),日志也会强调它。

查看器工具在能够对列进行排序方面非常差。我发现打开C:\ FusionLogs \ Default \ devenv.exe(我将C:\ FusionLogs设置为自定义日志路径)更容易,按修改日期排序,并在尝试添加时创建新文件时观察数据来源。

就使用哪个文件夹而言 - 我最初将它们放入PrivateAssemblies,用于创建数据源/报告。然而,当它构建预览报告时,我得到另一个无法加载程序集消息。再次使用日志查看器,但这次在PreviewProcessingService.exe文件夹中,错误表明检查程序集的唯一目录是:C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ CommonExtensions \ Microsoft \ SSDTRS - 此位置适用于创建和预览报告。

答案 2 :(得分:2)

我也遇到了这个问题,为我修复的是上面提到的内容以及编辑

中的 RSPreviewPolicy.config
  

C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ CommonExtensions \ Microsof t \ SSRS

我在所有<中设置 PermissionSetName =“FullTrust”代码组>< /代码组>  块。