【问题标题】:SSRS Custom Assemblies could not be loaded under Visual Studio 2017SSRS 自定义程序集无法在 Visual Studio 2017 下加载
【发布时间】:2017-04-20 13:05:59
【问题描述】:

我刚刚安装了 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 的正确路径并检查文件/文件夹权限并将它们设置为相同,但没办法,它仍然会引发相同的错误。

我错过了什么?

【问题讨论】:

    标签: reporting-services visual-studio-2017


    【解决方案1】:

    现在这需要 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
    

    【讨论】:

    • 另外确认,这适用于 VS2019。谢谢马特!
    【解决方案2】:

    我也遇到过这个问题,为我解决的问题是执行上述操作并编辑位于

    中的 RSPreviewPolicy.config

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

    我在所有 中设置了 PermissionSetName="FullTrust" 块。

    【讨论】:

      【解决方案3】:

      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 - 此位置适用于创建和预览报告。

      【讨论】:

      • 感谢您的回复。 “Fusion Assembly Binding Log Viewer”帮助了我。对于我来说,文件夹是“C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS”,PreviewProcessingService.exe 正在寻找我的 PrivateAssemblies。
      猜你喜欢
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-21
      • 2019-02-01
      • 1970-01-01
      • 2019-02-08
      相关资源
      最近更新 更多