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

时间:2013-10-29 03:14:33

标签: c# asp.net asp.net-mvc

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 

有人检查昨天项目工作正常,但今天它不起作用。它编译和构建没有任何麻烦,但不起作用。

4 个答案:

答案 0 :(得分:2)

第44行:你有81个反斜杠。在第45和46行,你有80。在字符串文字中使用时,反斜杠字符用作“转义”字符,以指示新行和制表符等内容。如果您确实需要字符串中的反斜杠,则需要为每个所需的反斜杠指定2个连续的反斜杠。由于第44行上有一个奇数个反斜杠,因此您收到错误。

如果你真的想要那么多反斜杠,你可以在C#中禁用转义字符,方法是在字符串文字前加一个@,如下所示:

WriteLiteral(@"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"
           + @"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"
           + @"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"

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

答案 1 :(得分:1)

只需使用此构造函数

new String('\\', 80)

获取80个反斜杠的字符串。

答案 2 :(得分:1)

我得到了同样的东西,它是自动代码,我的项目是带有MVC 4的ASP.net,Razor。这些代码不是由我们键入的。只有在新部署中出现此错误,相同代码的其他部署才能正常工作,

描述:编译服务此请求所需的资源时发生错误。请查看以下特定错误详细信息并相应地修改源代码。

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 

答案 3 :(得分:0)

这里的问题(如Bo Flexson's answer中所述)是自动生成的代码,而不是物理地写入一个带有(大)奇数斜杠字符的视图。

回答this question中描述的一个解决方案是简单地重新编译和重新部署。

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