【问题标题】:Show Visualizers Error "could not load this custom viewer"显示 Visualizers 错误“无法加载此自定义查看器”
【发布时间】:2020-10-13 17:45:08
【问题描述】:

当我尝试通过标准 DataSet 可视化工具检查 DataSet 时,我看到此错误 “无法加载此自定义查看器”。 我写了简单的数据集可视化工具,但还是会抛出错误。

在具有相同配置可视化器的其他计算机上显示没有任何错误。

操作系统:Windows 7 x86(发行版)

VS:Visual Studio 2010 RC

有人有什么想法吗?

我重新安装VS没有效果。

【问题讨论】:

    标签: visual-studio debugging visualizer


    【解决方案1】:

    试试下面的。

    -转到Tools->options->Debugging->请取消选中"Use Managed Compatibility Mode"

    【讨论】:

    • 这仍然适用于 vs2019
    • 这在 VS2019 Pro 16.4.4 中对我不起作用。仍然收到“无法加载此自定义查看器”。当我单击 DataTable 的 Table Visualizer 时。
    • 对我来说也一样。还在做。
    【解决方案2】:

    我在 VS 2015 中遇到了同样的问题,这里的答案都没有帮助我,但我找到了一个描述我的问题的 issue on github

    解决方案或解决方法可能更准确,对我来说,关闭我(显然)在“工具”->“选项”->“调试”->“常规”中打开的选项“使用旧版 C# 和 VB 评估器”。

    【讨论】:

    • 在 VS2019 pro 16.4.4 中也不适用于我。该选项已关闭。
    • VS2019 Community v. 16.7.1 - 我什至没有在 Debugging->General 下看到“Use the legacy C# and VB evaluators”。
    • @BillNorman 如果您没有看到它,那可能不是您的问题,但在我的情况下,仍然可以在 %AppData\Local\Microsoft\VisualStudio\16.0_xxxxxxxx\Settings% 下更改它,我已更改它以解决另一个问题。
    【解决方案3】:

    诊断此问题的最佳方法是调试 Visual Studio 本身。试试下面的

    • 让 Visual Studio 进入您想要使用 Visualizer 的状态
    • 将另一个版本的 Visual Studio 附加到原始版本(仅限托管)
    • 禁用仅我的代码(工具 -> 选项 -> 调试器 -> 取消选中“仅我的代码”)
    • 转到调试 -> 异常
    • 选中“CLR 异常”的抛出框
    • 切换回第一个 VS 并尝试显示您的 Visualizer

    这应该会引发一个异常,该异常随后会显示在 Visual Studio 的第二个实例中。如果这些信息不足以解决您的问题,请回复此信息。

    【讨论】:

    • 好的!这是个好主意。我这样做了,然后看到了下一个异常:“AppDomain 的安全状态由配置了 NoSecurityChanges 标志的 AppDomainManager 修改。”顺便说一句,我在尝试编译添加到引用 COM 对象 dll 的项目时看到了这个异常。解决我也没有发现的问题。
    • 这对我不起作用。如果我附加调试器端执行其余指定操作,我仍然会害怕“无法加载此自定义查看器。” 窗口。
    • 这没有帮助。在切换到原始 VS2019 之前,我会重复出现“System.UriFormatException”错误。如果我禁用该异常检查,则会重复出现“System.ComponentModel.Win32Exception”错误(无效的窗口句柄)。如果我禁用它,那么弹出窗口就会出现而不会引发异常。
    【解决方案4】:

    对我来说。 Visual Studio 2010 重启有帮助。

    【讨论】:

      【解决方案5】:

      我在 VS2017 中遇到了同样的问题,我尝试了很多但没有任何效果,最后,我重置了我所做的所有 VS 设置并且错误消失了。

      https://blogs.msdn.microsoft.com/zainnab/2010/07/16/reset-all-your-development-settings/

      【讨论】:

      • 道具!那是为我做的!
      • 这个也是为我修好的!
      【解决方案6】:

      我找到了解决方法! 我更改了 DevExpress 模块的源代码并重新编译它。之后,我将参数撤消为 NetFx40_LegacySecurityPolicy enabled="false",然后享受。 :)

      文件是“%DeveloperExpress.NET%\Sources\DevExpress.Data\Utils\Security.cs”

      using System;
      using System.Security;
      using System.Security.Permissions;
      namespace DevExpress.Data.Helpers {
          public static class SecurityHelper {
              public static bool IsPartialTrust {
                  get {
                      return !IsPermissionGranted(new ReflectionPermission(ReflectionPermissionFlag.MemberAccess));
                  }
              }
              public static bool IsPermissionGranted(IPermission permission) {
                  bool result = true;
      /* (changed by Lion)
                  try {
                      PermissionSet ps = SecurityManager.ResolvePolicy((System.Security.Policy.Evidence)null);
                      ps = ps.Copy();
                      ps.AddPermission(permission);
                      ps.Demand();
                  }
                  catch (SecurityException) {
                      result = false;
                  }
      */
                  return result;
              }
          }
      }
      

      【讨论】:

      • 您能否提供更多详细信息?
      【解决方案7】:

      对我来说,我为自己创建的类型编写了自己的可视化工具。显然,这干扰了 VS 2017 显示数据集的内置可视化工具的能力。一旦我删除了自己的可视化工具和 Microsoft Debugger Visualizer 参考,我就可以使用内置的了。
      我在早期版本的 VS 中编写了其他没有引起任何问题的可视化工具。

      【讨论】:

        【解决方案8】:

        我找到了这个错误的原因。 根据这个建议http://go.microsoft.com/fwlink/?LinkID=155570 我添加到 devenv.exe.config 这个参数 NetFx40_LegacySecurityPolicy enabled="true" 使用 .config 文件中的此参数,我在尝试打开 DataSet 可视化工具时遇到错误。

        当我删除这个参数时,一切都好了。执行“AppDomain 的安全状态已被配置了 NoSecurityChanges 标志的 AppDomainManager 修改”也已修复。

        但我需要 NetFx40_LegacySecurityPolicy enabled="true" 参数来处理旧项目。

        【讨论】:

        • @LionSoft 我在同一个项目中对 Devexpress 控件和 Silverlight 有同样的问题。有什么解决方法吗?
        • 这里有同样的问题。 DevExpress 控件不起作用。看起来我们将不得不等待 DevExpress 更新他们的东西。
        【解决方案9】:

        清除 Visual Studio 缓存为我修复了它。

        只需遵循以下基本步骤:

        第一步:清除组件缓存

        1. 关闭 Visual Studio(确保任务管理器中不存在 devenv.exe)
        2. 删除目录:

        %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache

        如果第 1 步不起作用,那么

        第 2 步:清理用户的临时文件夹。删除此目录:

        %USERPROFILE%\AppData\Local\Temp

        如果第 2 步不起作用,那么

        第 3 步:删除所有这些目录:

        %USERPROFILE%\AppData\Local\Microsoft\Team Foundation

        %USERPROFILE%\AppData\Local\Microsoft\VisualStudio

        %USERPROFILE%\AppData\Local\Microsoft\VSCommon

        信用:https://errorhandlinginskills.wordpress.com/2018/07/28/how-to-clear-visual-studio-cache/

        【讨论】:

        • 这对我有用,然后重新安装查看器。谢谢!
        【解决方案10】:

        visual studio -> Tools-> options-> Debugging-> "Use Managed Compatibility Mode" - 取消选中它,也许它可以正常工作。

        【讨论】:

        • 假设您的答案将当前信息添加到一个 9 岁的问题中,您能否通过这样指出来改进您的答案,并添加特定于您的解决方案的环境和版本信息?
        • 这仅适用于一些奇怪的情况,而不是一般情况下。在大多数情况下,说“它可以正常工作”是错误的。
        【解决方案11】:

        在我的 16.4.x - 16.7.5 之间的更新被破坏后,在 Visual Studio 2019 社区中,我所要做的就是取消选中“使用自定义调试器可视化工具处理可能不安全的进程时发出警告(仅限托管)”,它允许我查看数据表的视觉效果。在工具>选项>调试>常规菜单下。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-09-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-17
          • 2011-11-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多