【问题标题】:An interpolation string $ is considered as an invalid character and returns an error BC30037 (vb.net)插值字符串 $ 被视为无效字符并返回错误 BC30037 (vb.net)
【发布时间】:2019-05-27 13:39:38
【问题描述】:

我在 vb.net 中设置了一个 Redis 缓存服务器,所以我开始在我的源代码中实现 Redis 类,以便以后可以使用类方法。

我目前遇到此错误:“BC30037:无效字符”,我无法解决。错误来自我的字符串前面的字符“$”,允许正常进行字​​符串插值。在这里它不起作用,相反,这个字符被认为是无效的(编译器不理解它是一个插值字符串,因此返回一个错误,因为)。

我发现有人在另一个主题中解决了同样的问题,但他使用 Team Foundation Server 并且正在开发一个 Visual Studio 项目:tfs build server - string interpolation $ Character is not valid

我正在使用 Visual Studio 2019 和 ASP.NET 4.7.2,但我没有项目(我的代码与 Visual Studio 中的代码相同,但不在项目中)。

我想知道如何用我当前的配置解决这个问题?

Public Function GetCommand() As String Implements IRedisCommand.GetCommand
    Return $"APPEND {Key} {Value}" //$ is the problem here
End Function

【问题讨论】:

  • 您使用的是 Option Strict On 吗?如果不是,则可能存在其他问题,使$ 出现问题。
  • vb.net 中的注释字符是单引号而不是 //(那是 C#)。
  • Return "${Key} ${Value}" 单行 cmets 也是使用 ' 而不是 // 创建的。 VB 中不存在多行 cmets。
  • "我的代码与 Visual Studio 中的一样,但它不在项目中"没有项目如何进入编辑器?
  • 我只是在处理包含我的源代码的文件夹,而同一个文件夹托管在本地 IIS 服务器上,让我可以查看站点的外观。但是由于我在我的代码中实现了 Redis,因此我无法再访问我的网站,因为这个错误。

标签: .net vb.net redis string-interpolation invalid-characters


【解决方案1】:

对于其他想要使用 vb.net 中最新功能(如字符串插值)的其他人,我必须采取以下步骤来解决 BC30037 错误:

我应该注意,我的错误只在本地运行代码时出现。当发布到运行 iis 7.5+ 的服务器 2012 时,一切正常。

  1. 首先,确保您的应用使用.Net Framework 4.5.1 或更高版本。

  2. 接下来,打开包管理器并运行

    PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
    

    这将设置您的 web.config 以针对最新的编译器。我相信这就是为什么它不能在本地工作,而是在服务器上工作的原因。

  3. 最后,运行

    PM> update-package -reinstall
    

    这可确保任何以前安装的库都更新为 4.5.1+

重新编译并运行本地调试来验证! 希望对某人有所帮助。

【讨论】:

    【解决方案2】:

    我终于找到了解决问题的办法:我使用String.Format()方法将对象的值按照指定的格式转换成字符串,插入到另一个字符串中。

    现在看起来像这样:

    Public Function GetCommand() As String Implements IRedisCommand.GetCommand
        Return String.Format("APPEND {0} {1}", Key, Value)
    End Function
    

    顺便说一句,感谢您对 vb cmets 的澄清。

    祝你有个美好的一天!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-12
      • 1970-01-01
      • 2012-03-14
      • 2015-01-13
      • 1970-01-01
      相关资源
      最近更新 更多