gpt4 book ai didi

vb.net - 仅支持最高 Visual Basic 2012 的语言版本

转载 作者:行者123 更新时间:2023-12-05 05:18:01 30 4
gpt4 key购买 nike

[编辑:这是一个内存问题。就在出现此错误之前的几秒钟内,我的计算机上的内存从 42% 使用到 91%。有关编译器最多支持 2012 的错误消息只是转移注意力。该消息总是从编译器输出。 ]

我刚刚将一个 Visual Basic 应用程序从 VS2005 转换到 VS2017。

当我尝试启动它时出现此错误:

Server Error in '/' Application.

Compilation Error Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: The compiler failed with error code -2147024888.

Show Detailed Compiler Output:

C:\Program Files (x86)\IIS Express> Microsoft (R) Visual Basic Compiler version 14.7.2556 for Visual Basic 2012 Copyright (c) Microsoft Corporation. All rights reserved.

This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to Visual Basic 2012, which is no longer the latest version. For compilers that support newer versions of the Visual Basic programming language, see http://go.microsoft.com/fwlink/?LinkID=533241

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.2556.0

这是我尝试过的:

  1. 跟随 fwlink,它实际上重定向到 github,它似乎是支持我的旧代码的编译器的某个开源版本。我没有兴趣这样做。
  2. 阅读这个问题的答案:Compilation Error when change .Net framework from 4.5.2 to 4.5 in VS 2015 Community edition

我尝试按照说明进行操作,但这些说明似乎是针对 MVC 项目的,而我的项目是 Web 项目 [注意:我是 Visual Studio 的新手,所以我可能错了] 但我确信的是:

一个。我没有项目文件。

我在我的项目上看到一个地球图标。

当我右键单击该项目(解决方案资源管理器中的地球图标)时,我没有获得“属性”菜单项。

那么,我如何克服这个错误,我更喜欢将我的代码更新为当前技术,而不是将库拼凑在一起以使其运行。

[编辑] 这个问题刚刚发生在一个不同的项目/解决方案上,它实际上有一个项目文件。这是几个月前从 VS2005 转换到 VS2017 并且一直运行良好。我怀疑 VS2017 中的某些配置更改会影响所有解决方案。

[编辑] 关于内存不足的评论似乎很有希望,只是它每次都在完全相同的位置失败。重新启动没有帮助。这是具有 16GB 和 500GB SSD 以及 400GB 可用空间的 i7。如果内存不足,则可能是 VS 中的某些配置人为地限制了该特定进程的内存。我将深入了解这条线索。

[编辑] 我安装了 IIS Express 10.0.1740。

[编辑] 我尝试使用 nuget 安装 Roslyn 编译器。错误消息没有改变,但可能是我需要做一些额外的配置才能使其成为用于此解决方案/项目的编译器。问题是在应用程序运行时发生的,因此可能是 iisexpress 正在编译。

[编辑] 这也发生在另一个有 .vbproj 文件的项目上。我怀疑是某些更新导致了这个问题。

[编辑] 我现在正在一个有 .vbproj 文件的项目中进行测试。要更改目标框架,我执行 Project -> XXX Properties -> Application -> Target Framework 4.6.1。问题仍然存在。请注意消息中的警告,它可能需要额外的手动编辑。我不知道要编辑什么,所以我没有做其他更改。

enter image description here

[编辑] 请注意,编译器版本为 14.7.2556,它提示适用于 VB2012。这似乎与 https://en.wikipedia.org/wiki/Visual_Basic_.NET 冲突那就是说 vb 编译器 14.0 于 2015 年问世。

[编辑] 我在 web.config 中没有一个部分,所以没有什么可以删除的。

[编辑] 我在 web.config 中没有 compilerOptions= 标记,因此无需更改。

最佳答案

对于 16GB 的 i7 和 400GB 可用空间的 500GB SSD,我怀疑这是内存问题,我猜 ERROR_NOT_ENOUGH_MEMORY 是根本原因的症状:

This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to Visual Basic 2012,

换句话说,编译器只适用于 2012 年之前的项目,所以让我们通过以最新版本的 .Net Framework 为目标来更改我们使用的编译器(右键单击项目 >属性页):

enter image description here

您还可以安全地删除用于 Dynamic Compilation 的 CodeDom在 web.config 中:

<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
</compilers>
</system.codedom>

或者您可以更改compilerOptions="/langversion:6 编译器版本。

如果这不起作用,请减少 https://stackoverflow.com/help/mcve在 VS2005 中,我们可以重现问题并将解决方案上传到我们可以下载的地方。

关于vb.net - 仅支持最高 Visual Basic 2012 的语言版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48372868/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com