You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Azure部署应用遇CS1056错误:如何设置正确.NET Framework版本

Fixing CS1056: Unexpected character '$' in Azure Deployment

Hey Sharath, I’ve run into this exact issue before—let’s get it sorted out quickly!

Why This Happens

The $ string interpolation syntax you’re using is a C# 6.0 feature, which requires .NET Framework 4.6 or later to work properly. Even though your local setup supports this (since it runs fine), your Azure App Service is likely configured to use an older .NET Framework version or an outdated compiler that doesn’t recognize the $ character. The version info you shared shows .NET Framework Version:4.0.30319—that’s the root of the problem.

Step-by-Step Fixes

1. Verify Your Project’s Target Framework

First, make sure your local project is set to target a compatible .NET Framework version:

  • In Visual Studio, right-click your project → PropertiesApplication tab.
  • Under Target framework, select .NET Framework 4.6 or higher (I recommend matching your local ASP.NET version, 4.7.2, for consistency).
  • Save the changes, rebuild your project, and republish to Azure.

2. Configure Azure App Service’s .NET Version

Next, update your Azure App Service to use the correct framework version:

  • Log into the Azure Portal, navigate to your App Service resource.
  • On the left sidebar, go to SettingsConfigurationGeneral settings.
  • Find the .NET Framework version dropdown and select the same version you set in your project (e.g., v4.7).
  • Click Save, then restart your App Service to apply the changes.

3. Ensure Roslyn Compiler is Configured (If Needed)

If you still see the error after the first two steps, your project might be using the old legacy compiler instead of Roslyn (which supports C# 6+ features):

  • Install the Microsoft.CodeDom.Providers.DotNetCompilerPlatform NuGet package in your project (this adds Roslyn support).
  • Open your project’s web.config file and add or update the following section to enforce C# 6 syntax:
    <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:6 /nowarn:1659;1699;1701"/>
      </compilers>
    </system.codedom>
    
  • Republish your project to Azure after making this change.

Final Notes

Most of the time, just updating the project’s target framework and Azure’s .NET version will fix the issue. The Roslyn compiler step is only needed if your project was originally created with an older .NET version and hasn’t been migrated to use modern tooling.

内容的提问来源于stack exchange,提问作者Sharath

火山引擎 最新活动