“Generate Equals and GetHasCode”引发异常

问题描述

我正在尝试使用 Visual Studio 中的“Generate Equals and GetHasCode”代码生成工具,如 this Microsoft doc 所述。我过去曾成功使用过它,但现在当我尝试使用它时,它会抛出异常而不是生成请求的代码

enter image description here

这是提供的堆栈跟踪:

System.ArgumentException : Destination type must be a TypeBlockSyntax,compilationunitSyntax or NamespaceBlockSyntax,but given one is StructureStatementSyntax.
Parameter name: destination
   at Microsoft.CodeAnalysis.CodeGeneration.AbstractCodeGenerationService.CheckDeclarationNode[TDeclarationNode1,TDeclarationNode2,TDeclarationNode3](SyntaxNode destination)
   at Microsoft.CodeAnalysis.VisualBasic.CodeGeneration.VisualBasicCodeGenerationService.AddMethod[TDeclarationNode](TDeclarationNode destination,IMethodSymbol method,CodeGenerationoptions options,IList`1 availableIndices)
   at Microsoft.CodeAnalysis.CodeGeneration.AbstractCodeGenerationService.UpdateDestination[TDeclarationNode](IList`1 availableIndices,TDeclarationNode currentDestination,ISymbol member,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CodeGeneration.AbstractCodeGenerationService.AddMembersToAppropiateLocationInDestination[TDeclarationSyntax](TDeclarationSyntax destination,IEnumerable`1 members,IList`1 availableIndices,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CodeGeneration.AbstractCodeGenerationService.AddMembers[TDeclarationNode](TDeclarationNode destination,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CodeGeneration.CodeGenerator.AddMemberDeclarations[TDeclarationNode](TDeclarationNode destination,Workspace workspace,CodeGenerationoptions options)
   at async Microsoft.CodeAnalysis.GenerateEqualsAndGetHashCodeFromMembers.GenerateEqualsAndGetHashCodeFromMembersCodeRefactoringProvider.GenerateEqualsAndGetHashCodeAction.GetChangedDocumentAsync(<UnkNown Parameters>)
   at async Microsoft.CodeAnalysis.CodeActions.CodeAction.GetChangedSolutionAsync(<UnkNown Parameters>)
   at async Microsoft.CodeAnalysis.CodeActions.CodeAction.ComputeOperationsAsync(<UnkNown Parameters>)
   at async Microsoft.CodeAnalysis.CodeActions.CodeAction.ComputeOperationsAsync(<UnkNown Parameters>)
   at async Microsoft.CodeAnalysis.CodeActions.CodeAction.GetoperationscoreAsync(<UnkNown Parameters>)
   at async Microsoft.CodeAnalysis.GenerateEqualsAndGetHashCodeFromMembers.GenerateEqualsAndGetHashCodeFromMembersCodeRefactoringProvider.GenerateEqualsAndGetHashCodeWithDialogCodeAction.ComputeOperationsAsync(<UnkNown Parameters>)
   at async Microsoft.CodeAnalysis.CodeActions.CodeActionWithOptions.GetoperationsAsync(<UnkNown Parameters>)
   at Roslyn.Utilities.TaskExtensions.WaitAndGetResult_CanCallOnBackground[T](Task`1 task,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Editor.Implementation.Suggestions.SuggestedAction.InvokeWorker(Func`1 getFromDocument,IProgresstracker progresstracker,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Editor.Implementation.Suggestions.SuggestedAction.<>c__displayClass20_0.<InvokeCore>b__0()
   at Microsoft.CodeAnalysis.Extensions.IExtensionManagerExtensions.PerformAction(IExtensionManager extensionManager,Object extension,Action action)
   at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)

它甚至出现在非常简单的类中,例如:

Public Class Test
    Public Property Address As Integer
End Class

我已经尝试过重新启动 Visual Studio、重新启动计算机和修复 Visual Studio

这是来自 Visual Studio 的版本信息。 (我将所有内容包括在内,因为我不确定哪些内容可能相关。)内置的“检查更新”功能表明一切都是最新的。

Microsoft Visual Studio 社区 2019 版本 16.8.4 VisualStudio.16.Release/16.8.4+30907.101 微软.NET 框架 版本 4.8.04084

安装版本:社区

Visual C++ 2019 00435-60000-00000-AA092 Microsoft Visual C++ 2019

ADL Tools Service Provider 1.0 这个包包含使用的服务 通过数据湖工具

ASA 服务提供商 1.0

ASP.NET 和 Web 工具 2019 16.8.557.25636 ASP.NET 和 Web 工具 2019

ASP.NET Core Razor 语言服务
16.1.0.2052803+84e121f1403378489b842e1797df2f3f5a49ac3c 为ASP.NET Core Razor提供语言服务。

ASP.NET Web 框架和工具 2019 16.8.557.25636 其他 信息,请访问 https://www.asp.net/

Azure 应用服务工具 v3.0.0 16.8.557.25636 Azure 应用服务 工具 v3.0.0

Azure Data Lake Node 1.0 此包包含 Data Lake Server Explorer 的集成节点。

适用于 Visual Studio 2.6.1000.0 Microsoft Azure 的 Azure Data Lake 工具 适用于 Visual Studio 的数据湖工具

适用于 Visual Studio 2.6.1000.0 Microsoft 的 Azure 流分析工具 适用于 Visual Studio 的 Azure 流分析工具

C# 工具 3.8.0-5.20604.10+9ed4b774d20940880de8df1ca8b07508aa01c8cd IDE 中使用的 C# 组件。根据您的项目类型和 设置,可能会使用不同版本的编译器。

Common Azure Tools 1.10 提供供 Azure 使用的通用服务 移动服务和 Microsoft Azure 工具。

intellicode 扩展 1.0 intellicode Visual Studio 扩展 详细信息

Microsoft Azure HDInsight Azure Node 2.6.1000.0 HDInsight Node 下 Azure 节点

Microsoft Azure Hive 查询语言服务 2.6.1000.0 语言 Hive 查询服务

Microsoft Azure 流分析语言服务 2.6.1000.0 Azure 流分析的语言服务

Microsoft Azure 流分析节点 1.0 Azure 流分析 Azure 节点下的节点

Microsoft Azure 工具 2.9 用于 Microsoft Visual 的 Microsoft Azure 工具 Studio 2019 - v2.9.30924.1

适用于 Visual Studio 0.4 的 Microsoft 持续交付工具 从内部简化 Azure DevOps 管道的配置 Visual Studio IDE。

Microsoft JVM Debugger 1.0 支持连接 Visual Studio 调试器到 JDWP 兼容的 Java 虚拟机

Microsoft Library Manager 2.1.113+g422d40002e.RR 安装客户端 库可以轻松添加到任何 Web 项目

Microsoft MI-Based Debugger 1.0 提供连接支持 Visual Studio 到 MI 兼容的调试器

Microsoft Visual C++ 向导 1.0 Microsoft Visual C++ 向导

Microsoft Visual Studio Tools for Containers 1.1 开发、运行、 在目标环境中验证您的 ASP.NET Core 应用程序。 F5 您的应用程序通过调试直接进入容器,或者 CTRL + F5 编辑和刷新您的应用程序,而无需重建容器。

Microsoft Visual Studio VC 包 1.0 Microsoft Visual Studio VC 包

NuGet 包管理器 5.8.1 Visual Studio 中的 NuGet 包管理器。 有关 NuGet 的更多信息,请访问 https://docs.nuget.org/

Office 开发者工具 Visual Studio 16.0.30502.00 Microsoft 适用于 Visual Studio 的 Office 开发人员工具

ProjectServicesPackage 扩展 1.0 ProjectServicesPackage Visual Studio 扩展详细信息

sql Server 数据工具 16.0.62012.31170 Microsoft sql Server 数据 工具

用于 Boost.Test 1.0 的测试适配器启用 Visual Studio 的测试 带有为 Boost.Test 编写的单元测试的工具。使用条款及第三 派对通知可在扩展安装目录中找到。

Google Test 1.0 的测试适配器启用 Visual Studio 的测试 带有为 Google Test 编写的单元测试的工具。使用条款和 第三方通知在扩展安装中可用 目录。

ToolWindowHostedEditor 1.0 将 json 编辑器托管到工具窗口中

TypeScript 工具 16.0.21016.2001 适用于 Microsoft 的 TypeScript 工具 视觉工作室

Visual Basic 工具
3.8.0-5.20604.10+9ed4b774d20940880de8df1ca8b07508aa01c8cd IDE 中使用的 Visual Basic 组件。根据您的项目类型和 设置,可能会使用不同版本的编译器。

Visual Studio Code Debug Adapter Host Package 1.0 互操作层,用于 在 Visual Studio 中托管 Visual Studio Code 调试适配器

Visual Studio Container Tools Extensions 1.0 查看、管理和 诊断 Visual Studio 中的容器。

Visual Studio Tools for CMake 1.0 Visual Studio Tools for CMake

Visual Studio Tools for Containers 1.0 Visual Studio Tools for 容器

Workflow Manager Tools 1.0 1.0 此包包含必要的 用于工作流管理器的 Visual Studio 集成组件。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)