插值字符串$被视为无效字符,并返回错误BC30037(vb.net)
我正在vb.net中设置一个Redis缓存服务器,因此我开始在源代码中实现Redis类,以便以后可以使用类方法 我当前有以下错误:BC30037:无效字符,无法解决它。错误来自字符串前面的字符$,允许正常进行字符串插值。这里它不起作用,相反,这个字符被认为是无效的。编译器不理解它是一个插值字符串,因此返回一个错误,因为插值字符串$被视为无效字符,并返回错误BC30037(vb.net),.net,vb.net,redis,string-interpolation,invalid-characters,.net,Vb.net,Redis,String Interpolation,Invalid Characters,我正在vb.net中设置一个Redis缓存服务器,因此我开始在源代码中实现Redis类,以便以后可以使用类方法 我当前有以下错误:BC30037:无效字符,无法解决它。错误来自字符串前面的字符$,允许正常进行字符串插值。这里它不起作用,相反,这个字符被认为是无效的。编译器不理解它是一个插值字符串,因此返回一个错误,因为 我发现有人在另一个主题中解决了同样的问题,但他使用Team Foundation Server并正在VisualStudio项目中工作: 我正在使用Visual Studio 2
我发现有人在另一个主题中解决了同样的问题,但他使用Team Foundation Server并正在VisualStudio项目中工作:
我正在使用Visual Studio 2019和ASP.NET 4.7.2,但我没有项目我的代码与Visual Studio中的代码相同,但不在项目中 我想知道如何用我当前的配置解决这个问题 公共函数GetCommand作为字符串实现IRedisCommand.GetCommand 返回$APPEND{Key}{Value}/$是这里的问题 端函数
我终于找到了解决这个问题的另一种方法:我使用String.Format方法根据指定的格式将对象的值转换成字符串,并将它们插入到另一个字符串中 现在看起来是这样的:
Public Function GetCommand() As String Implements IRedisCommand.GetCommand
Return String.Format("APPEND {0} {1}", Key, Value)
End Function
顺便说一下,感谢您对vb评论的澄清
祝你今天愉快 对于任何想使用vb.net中最新功能(如字符串插值)的人,我必须采取以下步骤来解决BC30037错误: 我应该注意,我的错误只在本地运行代码时出现。当发布到运行iis 7.5+的服务器2012时,一切正常 首先,确保您的应用程序使用的是.Net Framework 4.5.1或更高版本 接下来,打开包管理器并运行
PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
这将设置web.config以针对最新的编译器。我相信这就是为什么它不在本地工作,而是在服务器上工作的原因
最后,跑
PM> update-package -reinstall
这将确保以前安装的所有库都针对4.5.1进行了更新+
重新编译并运行本地调试以进行验证!
希望这对某人有所帮助。您是否在使用Option Strict On?如果不是,可能还有其他一些问题使得$出现问题。vb.net中的注释字符是单引号not//,这是C。Return${Key}${Value}还使用“and not//”创建单行注释。VB中不存在多行注释。我的代码与visual studio中的代码相同,但不在项目中。如果没有项目,如何访问编辑器?我正在处理包含源代码的文件夹,该文件夹位于本地IIS服务器上,允许我查看站点的外观。但由于我在代码中实现了Redis,因此我无法再访问我的站点。