The Issue
你好,我正在尝试更新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>)
What I tried
到目前为止,我已经探索了各种级别的SEO-fu,以获得任何甚至远程相关的东西,但无济于事。当我打开项目的Property Pages窗口时,我只能升级到目标框架4.8,因为这是最新版本。根据微软学习网站,. net框架应该默认为c# 7.3,但我的ASP网站使用的版本是c# 5。当我尝试使用目标类型的对象创建时,我知道这个工具提示提醒我正在使用c# 5。
对此事的任何帮助都将不胜感激。
系统。NullReferenceException:对象引用未设置为对象的实例;问题可能由以下原因引起:
- ViewState对象为Null
- 日期设置为空。
- 由于sql语句或数据库的原因,DataReader为空。
- 当声明字符串变量时,应用该变量而不赋空值。
- 对象没有初始化new。
- 会话对象或应用程序为空。
- 给控件赋值时,该值不存在。
- 当使用Request.QueryString()时,获取的对象不存在,或者当值为空时未分配初始值。
- 当使用FindControl时,控件不存在但还没有被预处理。
- 重复定义会导致对象引用未设置为对象实例的错误。
如果可以消除以上问题,那么请打开Visual Studio Installer修复Visual Studio。
感谢@Ralf在评论中解决了这个问题。我更愿意给他们报应,但我不能把评论标记为答案。
参考:在此链接中找到了提供的解决方案。
解决方法是手动调整web.config中的语言版本。我的文件版本似乎完全丢失了代码块。
<system.codedom>
<compilers>
<compiler extension=".cs" language="c#;cs;csharp" warningLevel="4"
compilerOptions="/langversion:7.3 /nowarn:1659;1699;1701;612;618"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider,
Microsoft.CodeDom.Providers.DotNetCompilerPlatform,
Version=3.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<compiler extension=".vb" language="vb;vbs;visualbasic;vbscript" warningLevel="4"
compilerOptions="/langversion:default /nowarn:41008,40000,40008 /define:_MYTYPE="Web" /optionInfer+"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider,
Microsoft.CodeDom.Providers.DotNetCompilerPlatform,
Version=3.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</compilers>
</system.codedom>