微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C# CodeDomCompiler错误 CS1056:意外的字符“$”

如何解决C# CodeDomCompiler错误 CS1056:意外的字符“$”

我的代码是这样的:

public static bool CompileClient(out string[] errors)
{
    using (CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp"))
    {
        CompilerParameters cp = new CompilerParameters
        {
            GenerateExecutable = true,OutputAssembly = $"./hi.exe",CompilerOptions = "/optimize",TreatWarningsAsErrors = false
        };
        if (provider.Supports(GeneratorSupport.EntryPointMethod))
            cp.MainClass = "Namespace.Program";

        CompilerResults cr = provider.CompileAssemblyFromFile(cp,Directory.GetFiles("./Sourcecode/")); // Invoke compilation

        if (cr.Errors.Count > 0)
        {
            List<string> _errors = new List<string>();
            for (int i = 0; i < cr.Errors.Count; i++)
                _errors.Add(cr.Errors[i].ToString());
            errors = _errors.ToArray();
            return false;
        }
        else
        {
            errors = null;
            return true;
        }
    }
}

/Sourcecode/ 中的 .cs 文件包含以下代码$"Hello {name}"

编译文件时出现此错误error CS1056: Unexpected character '$'.

有没有办法在不使用 string + string 或 string.Format() 的情况下修复错误 也许更改版本或其他什么..?

解决方法

“字符串插值”的 $ 表示法(基本上是 string.Format() 的简写)是在 c# 版本 6 中引入的,因此您需要一个至少支持该版本的编译器。

这个答案可能有帮助:

Which C# compiler version to compile C# 7.3 with the CSharpCodeProvider class?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。