繁体   English   中英

如何解决 Visual Studio 扩展中 CSharpUpgradeProjectCodeFixProvider 中的 NullReferenceException?

[英]How do I resolve a NullReferenceException in CSharpUpgradeProjectCodeFixProvider in a Visual Studio extension?

问题

您好,我正在尝试将 ASP.NET 框架项目从 C# 版本 5 更新为更现代的语言版本。 但是,每次我尝试运行自动更新程序时都会出错,而且我在网上找不到任何关于如何手动执行它的信息,也找不到与此特定问题相关的任何信息。

编辑:
导致此问题的代码是 Visual Studio 的一部分,因此不是我自己代码的一部分,因此我认为发布我的代码与此无关。 我非常清楚 NullReferenceException 是什么,我不知道如何修复 visual studio 扩展。 看在上帝的份上,请阅读标题以外的内容。 引用的问题是关于修复自己代码中的错误,我需要更新一个 C# 版本。

请在下面找到它提供的堆栈跟踪:

System.NullReferenceException : Object reference not set to an instance of an object.
   at Microsoft.VisualStudio.LanguageServices.Utilities.ProjectPropertyStorage.PerConfigurationPropertyStorage.SetProperty(String buildPropertyName,String configurationPropertyName,String value)
   at Microsoft.CodeAnalysis.Workspace.ApplyProjectChanges(ProjectChanges projectChanges)
   at Microsoft.CodeAnalysis.Workspace.TryApplyChanges(Solution newSolution,IProgressTracker progressTracker)
   at Microsoft.VisualStudio.LanguageServices.Implementation.ProjectSystem.VisualStudioWorkspaceImpl.TryApplyChanges(Solution newSolution,IProgressTracker progressTracker)
   at Microsoft.CodeAnalysis.CodeActions.ApplyChangesOperation.ApplyOrMergeChanges(Workspace workspace,Solution originalSolution,Solution changedSolution,IProgressTracker progressTracker,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CodeActions.ApplyChangesOperation.TryApplyAsync(Workspace workspace,Solution originalSolution,IProgressTracker progressTracker,CancellationToken cancellationToken)
   at async Microsoft.CodeAnalysis.CodeActions.CodeActionEditHandlerService.ProcessOperationsAsync(<Unknown Parameters>)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.CodeAnalysis.CodeActions.CodeActionEditHandlerService.ApplyAsync(<Unknown Parameters>)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.CodeAnalysis.Editor.Implementation.Suggestions.SuggestedAction.InvokeWorkerAsync(<Unknown Parameters>)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Microsoft.CodeAnalysis.Extensions.IExtensionManagerExtensions.PerformActionAsync(<Unknown Parameters>)

我试过的

到目前为止,我已经探索了各种级别的 SEO-fu 以获得任何甚至是远程相关的东西,但无济于事。 当我打开项目的属性页 window 时,我只能 go 到 Target Framework 4.8,因为这是最新版本。 根据Microsoft Learn网站,.NET Framework 应默认为 C# 7.3,但我的 ASP 网站使用的版本是 C# 5。我知道这是当我尝试使用目标类型 object 创建时的工具提示,提醒我我正在使用 C# 5.

对此事的任何帮助将不胜感激。

“System.NullReferenceException:对象引用未设置到对象的实例”问题可能由以下原因引起:

  1. ViewState 对象为 Null。
  2. 日期集为空。
  3. 由于 sql 语句或 Datebase,DataReader 为空。
  4. 声明字符串变量时,应用变量而不分配空值。
  5. 该对象未使用 new 进行初始化。
  6. 会话对象或应用程序为空。
  7. 为控件分配文本值时,该值不存在。
  8. 使用Request.QueryString()时,获取的对象不存在,或者值为空时没有赋初值。
  9. 使用 FindControl 时,控件不存在但未进行预处理。
  10. 重复定义会导致对象引用未设置为对象实例的错误。

如果可以排除以上问题,那么请打开Visual Studio Installer修复Visual Studio。

感谢@Ralf 的评论,这个问题已经解决了。 我更愿意给他们业力,但我不能将评论标记为答案。

供参考:提供的解决方法可在此链接中找到。

解决方法是手动调整 web.config 中的语言版本。 我的文件版本似乎完全缺少代码块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM