【问题标题】:Cant change Target Framework (Could not resolve mscorlib)无法更改目标框架(无法解析 mscorlib)
【发布时间】:2023-04-06 03:47:01
【问题描述】:

我打开了一个新项目,发现Target Framework是net 5。我以前在4.7.2上工作,所以我搜索了一下,没有找到。知道我有两个使用 4.7.2 的项目并且它们运行良好,我尝试修改 .vbproj 文件并使其像这样

<TargetFramework>net472</TargetFramework>

重启项目后.net所有版本都出现了,但是修改表单设计时出现错误提示

Could not resolve mscorlib for target framework '.NETFramework,Version=v4.7.2'.  This can happen if the target framework is not installed or if the framework moniker is incorrectly formatted.

在 Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkUniverse..ctor(IDesignTimeAssemblyLoader assemblyLoader, IVsDesignTimeAssemblyResolution projectAssemblyResolution, IVsSmartOpenScope 分配器) 在 Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkUniverse.GetUniverse(IDesignTimeAssemblyLoader assemblyLoader,IVsDesignTimeAssemblyResolution projectAssemblyResolution,IVsSmartOpenScope 分配器) 在 Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkProvider..ctor(IVsDesignTimeAssemblyResolution assemblyResolution,IDesignTimeAssemblyLoader assemblyLoader,TypeDescriptionProvider parentProvider,IVsSmartOpenScope openScope) 在 Microsoft.VisualStudio.Design.VsTargetFrameworkProviderService.get_TargetFrameworkProvider() 在 Microsoft.VisualStudio.Design.VsTargetFrameworkProviderService.GetProvider(类型类型) 在 System.ComponentModel.Design.Serialization.DesignerSerializationManager.GetType(字符串类型名称) 在 System.ComponentModel.Design.Serialization.DesignerSerializationManager.System.ComponentModel.Design.Serialization.IDesignerSerializationManager.GetType(字符串类型名称) 在 System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager 管理器,CodeTypeDeclaration 声明) 在 System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager 管理器) 在 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager 序列化管理器) --- 从之前抛出异常的位置结束堆栈跟踪 --- 在 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager 序列化管理器) 在 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio.TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32 fReload)

我删除了表单并创建了一个新表单,希望它可以工作,但问题没有解决, 这里问题的原因是什么?

【问题讨论】:

    标签: vb.net winforms .net-5 .net-4.7.2


    【解决方案1】:

    您不能(轻松)将项目从 .NET 5.0 更改为 .NET Framework 4.8 或更早版本。这是因为 .NET 5.0 是 .NET Core,而不是 .NET Framework。如果要以 .NET Framework 为目标,则必须首先创建一个以 .NET Framework 为目标的项目。在创建新项目时,请注意您使用的项目模板。如果名称包含“(.NET)”,则表示 .NET Core,通常默认为 .NET 5.0,但可以更改为 .NET Core 3.1 或更早版本。如果您想以 .NET Framework 为目标,请选择名称中带有“(.NET Framework)”的项目模板。

    【讨论】:

    • 哈哈,是的,我没有看到这种差异 xD thx man
    猜你喜欢
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2018-06-10
    相关资源
    最近更新 更多