如何在旧的ASP.NET网站(不是网站项目)中使用C#6.0或7.0

时间:2019-05-14 12:44:48

标签: c# asp.net

我有多个旧的ASP.NET Webforms网站(这是从头开始创建网站的方法): enter image description here

它们不是网站项目。

ASP.NET网站似乎停留在C#5上。尝试使用c#6或C#7中的功能时,出现错误: enter image description here 尝试使用灯泡升级选项失败: enter image description here 由于没有.csproj文件,因此尝试在https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version处找到的任何其他选项也会失败。或“项目属性”页面中的选项来更改语言版本。

这是ASP.NET网站上的“构建”选项卡的外观(没有“高级”按钮): enter image description here

我安装了Microsoft.Net.Compilers NuGet软件包,但这没什么区别。

任何想法都可以在ASP.NET网站上完成吗?

更新 我注意到,如果您创建一个创建

3 个答案:

答案 0 :(得分:5)

右键单击项目,单击属性,选择“构建”选项卡,单击右下角的“高级”按钮,选择“语言版本”,然后单击“确定”按钮。

Click to see screen shot

答案 1 :(得分:0)

我遇到了一个项目,它是一个没有 .csproj 文件的旧 asp.net 项目。

如果你新建一个asp.net网站,你会发现.csproj文件,你就可以愉快的使用C#5以上的版本了。

那么问题就变成了:如何为旧项目生成.csproj文件。

只需创建一个新项目,然后从 Visual Studio 中的旧项目复制代码。然后将新的 .csproj 复制到旧项目中。然后你的旧 asp.net 项目刷新了。:)

答案 2 :(得分:0)

如果您安装 Microsoft.CodeDom.Providers.DotNetCompilerPlatform,它将更新您的 web.config 文件以使用当前版本 - 现在它位于 7.3

  <system.codedom>
    <compilers>
      <compiler extension=".cs" language="c#;cs;csharp" warningLevel="4" 
        compilerOptions="/langversion:7.3 /nowarn:1659;1699;1701;612;618" 
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, 
              Microsoft.CodeDom.Providers.DotNetCompilerPlatform, 
              Version=3.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      <compiler extension=".vb" language="vb;vbs;visualbasic;vbscript" warningLevel="4" 
        compilerOptions="/langversion:default /nowarn:41008,40000,40008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" 
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, 
              Microsoft.CodeDom.Providers.DotNetCompilerPlatform, 
              Version=3.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </compilers>
  </system.codedom>