编译器错误消息:CS1009:无法识别的转义序列

本文关键字:识别 转义序列 CS1009 错误 消息 编译器 | 更新日期: 2023-09-27 18:37:25

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: CS1009: Unrecognized escape sequence
Source Error:

Line 42:         
Line 43:         public override void Execute() {
Line 44: WriteLiteral("'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" +
Line 45: "''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" +
Line 46: "''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" +
Source File: c:'Windows'Microsoft.NET'Framework'v4.0.30319'Temporary ASP.NET Files'root'9d389ed9'2c615f86'App_Web_index.cshtml.c114ca27.wbkbq-st.0.cs    Line: 44 

有人检查昨天的项目工作正常,但今天它不起作用。 它可以毫无困难地编译和构建,但不起作用。

编译器错误消息:CS1009:无法识别的转义序列

在第 44 行:你有 81 个反斜杠。在第 45 行和第 46 行上,各有 80 个。在字符串文本中使用时,反斜杠字符用作"转义"字符来指示换行符和制表符等内容。如果您确实想要字符串中的反斜杠,则需要为每个所需的反斜杠指定 2 个连续的反斜杠。由于第 44 行的反斜杠数量为奇数,因此会出现错误。

如果您确实想要那么多反斜杠,则可以通过在字符串文本前面加上 @ 来禁用 C# 中的转义字符,如下所示:

WriteLiteral(@"'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''"
           + @"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''"
           + @"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''"

或者,您可以从第 44 行中删除其中一个反斜杠。

只需使用此构造函数

new String('''', 80)

以获得 80 个反斜杠的字符串。

我得到了同样的东西,它是自动代码,我的项目是使用 MVC 4 Razor ASP.net 的。 这些代码不是由我们键入的。 仅在新部署上收到此错误,相同代码的其他部署工作正常,

说明:编译处理此请求所需的资源时出错。请查看以下特定错误详细信息并相应地修改源代码。

Compiler Error Message: CS1009: Unrecognized escape sequence
Source Error:

Line 42:         
Line 43:         public override void Execute() {
Line 44: WriteLiteral("'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" +
Line 45: "''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" +
Line 46: "''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" +
Source File: c:'Windows'Microsoft.NET'Framework64'v4.0.30319'Temporary ASP.NET Files'root'e22c2559'92c7e946'App_Web__viewstart.cshtml.cdcab7d2.gtokpxja.0.cs    Line: 44 

这里的问题(如 Bo Flexson 的回答中所述)在于自动生成的代码,而不是物理编写包含(大量)奇数斜杠字符的视图。

回答此问题时描述的一种解决方案是简单地重新编译和重新部署。

对我来说,这不起作用,因为问题似乎归结为我们大型解决方案的构建顺序。最初,我偶然发现了一个解决方案,即对层次结构中更深的项目中的单独视图进行了一些小的更改,这迫使它正确地使用有问题的视图重建项目。从那以后,我更幸运地一个接一个地重建项目,而不是依靠完整的解决方案重建来获得正确的订单。