我有多个旧的ASP.NET Webforms网站(这是从头开始创建网站的方法):
它们不是网站项目。
ASP.NET网站似乎停留在C#5上。尝试使用c#6或C#7中的功能时,出现错误: 尝试使用灯泡升级选项失败: 由于没有.csproj文件,因此尝试在https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version处找到的任何其他选项也会失败。或“项目属性”页面中的选项来更改语言版本。
这是ASP.NET网站上的“构建”选项卡的外观(没有“高级”按钮):
我安装了Microsoft.Net.Compilers NuGet软件包,但这没什么区别。
任何想法都可以在ASP.NET网站上完成吗?
更新 我注意到,如果您创建一个创建
答案 0 :(得分:5)
右键单击项目,单击属性,选择“构建”选项卡,单击右下角的“高级”按钮,选择“语言版本”,然后单击“确定”按钮。
答案 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=\"Web\" /optionInfer+"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider,
Microsoft.CodeDom.Providers.DotNetCompilerPlatform,
Version=3.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</compilers>
</system.codedom>