asp.net - Azure站点: Compiler Error Message: CS1056: Unexpected character '$'

标签 asp.net .net azure

我尝试在 Azure 中托管我的应用程序,但出现以下错误:

编译器错误消息:CS1056:意外字符“$” 版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET 版本:4.7.2623.0

我使用“$”符号进行字符串连接。 这在我的本地计算机上运行良好,但会引发编译错误。

如何在 Azure 中设置正确的框架版本并避免上述异常。

谢谢, 萨拉特

最佳答案

Lex 应该因为以正确的方向发送此信息而受到赞扬。我想确认这是正确的路径并解决问题并提供更多细节。当我尝试将 ASP.NET 应用程序部署到 Microsoft Azure 应用服务时,我遇到了同样的问题和错误消息“编译器错误消息:CS1056:意外的字符 '$'”,实际上解决方案是将 Roslyn 编译器添加到项目中。默认情况下,Microsoft Azure App Service 上使用的内置编译器仅支持最多 C# 5 语言功能,需要 Roslyn 来编译和使用 C# 6 功能。注意我正在为我的项目部署 CS 文件,而不是编译的 DLL 文件。

在项目中安装 Roslyn

  1. 在 Visual Studio 2017 中,选择“工具”->“NuGet 包管理器”->“管理解决方案的 NuGet 包...”
  2. 从选项卡中选择“浏览”,然后搜索“Microsoft.CodeDom.Providers.DotNetCompilerPlatform”
  3. 从搜索结果中选择“Microsoft.CodeDom.Providers.DotNetCompilerPlatform”,然后在右侧检查要添加到的项目名称,然后点击“安装”按钮。
  4. 重建您的解决方案并确保它仍然可以构建。

使用 Roslyn 进行部署

  1. 您会注意到安装 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=\&quot;Web\&quot; /optionInfer+"/>
    </compilers></system.codedom>
    
  2. 您还会注意到,安装 DotNetCompilerPlatform 软件包并构建解决方案时,会在 Bin 文件夹中添加一些文件,确保这些文件(包括整个“roslyn”文件夹及其中的所有文件)放入您的 Bin 文件夹中部署:Bin folder files to deploy

这就是让我的网站恢复并使用 C# 6 语言功能运行所需的全部内容,希望它有所帮助。

关于asp.net - Azure站点: Compiler Error Message: CS1056: Unexpected character '$' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49841909/

相关文章:

javascript - 如何在 JavaScript 中动态地将具有特定类的 <strong> 标签添加到 <div> 中

javascript - 如何在aspx响应中设置$.post()函数的 'status'参数?

c# - 多线程 .NET RabbitMQ 发布者

c# - 如何在 ASMX Web 服务中一次限制一个调用者对特定类的访问?

azure - 为什么 "Application permissions"在 Azure AD 的 "Request API permissions"中被禁用?

azure - Web 应用程序加入 Azure Web Marketplace

c# - 如何在 Global.aspx 的 Application_Start 中获取完整的主机名+端口号?

css - 我如何使用隐藏电话 Bootstrap 类隐藏特定的 asp.net WebGridColumn/s

python - 无法使用 Python 创建 Azure 表

c# - WPF 中组合元素的部分缩放