我正在尝试在Azure中托管我的应用程序,但收到以下错误:
编译器错误消息:CS1056:意外字符' $' 版本信息:Microsoft .NET Framework 版本:4.0.30319 ; ASP.NET 版本:4.7.2623.0
我使用' $'使用字符串连接标志。 这在我的本地机器上工作正常,但会抛出编译错误。
如何在Azure中设置正确的框架版本并避免上述异常。
谢谢, 沙拉斯
答案 0 :(得分:0)
Lex应该以正确的方向发送此邮件而获得荣誉。我想确认这是正确的路径,并解决了该问题并提供了更多细节。尝试将ASP.NET应用程序部署到Microsoft Azure App Service时遇到相同的问题和错误消息“编译器错误消息:CS1056:意外字符'$'”,实际上解决方案是将Roslyn编译器添加到项目中。默认情况下,它似乎显示在Microsoft Azure App Service上使用的内置编译器仅支持最多C#5语言功能,并且需要Roslyn来编译和使用C#6功能。注意我正在为项目部署CS文件,而不是已编译的DLL文件。
在项目中安装Roslyn
与Roslyn一起部署
您会注意到安装DotNetCompilerPlatform软件包后,会在Web.config文件中添加一个类似于以下内容的部分,请确保将该部分添加到已部署的Web.config中:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers></system.codedom>
这就是恢复我的网站并使用C#6语言功能运行所需的一切,希望对您有所帮助。
答案 1 :(得分:0)
您可以安装Microsoft.Dotnet.Compilers程序包,然后再次编译您的站点。
请参阅此页面-Project builds fine with Visual Studio but fails from the command line