C# 7.1无法发布。
C# 7.1无法发布。
我有一个ASP.NET Core C# Web应用程序。我做了一些更改,现在使用C# 7.1功能。我改变了项目版本,所以编译和运行都很好。然而,当我尝试发布项目时,出现错误:\n
\nC# 7.0中不可用的功能“默认文字”。请使用7.1或更高版本的语言。\n
\n我看到的编译命令是:\n
C:...\.nuget\packages\microsoft.net.compilers\2.6.1\tools\csc.exe /noconfig /unsafe- /checked- /nowarn:1701,1702,1705,1701,1702,2008 /nostdlib+ /errorreport:prompt /warn:4 /define:TRACE;RELEASE;NETCOREAPP2_0 /errorendlocation /preferreduilang:en-US /warnaserror+:NU1605`
\n如其他地方建议的那样,我安装了Microsoft.Net.Compilers
(v2.6.1),但没有任何区别。\n是否有影响特定于发布的Visual Studio设置?\n更新:看起来控制台应用程序没有这个问题。如果成功构建,则也成功发布。然而,Web应用程序无法发布。有人成功发布了带有C# 7.1功能的ASP.NET Core Web应用程序吗?
在升级了VS2017版本从15.4.5到15.5.2后,我遇到了一个问题,错误信息为“Feature 'default literal' is not available in C# 7.0. Please use language version 7.1 or greater”。在旧项目和新项目格式中,项目文件中的LangVersion元素负责此问题。你可以通过csproj xml文件或通过Visual Studio的UI来更改它。请注意,此设置依赖于您的构建配置。为了确保您可以使用C# 7.1及更高版本进行编码和发布,请确保不论构建配置(Debug,Release等),都配置此设置。
问题的解决方法是在项目文件中添加如下配置:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> <LangVersion>latest</LangVersion> </PropertyGroup> </Project>
此外,还需要确保将C#7.1设置为Debug和Release配置。
最后,需要注意的是,有用户指出这个解决方法并没有解决他们的问题,但在评论中有其他用户给出了解决方法。因此,对于将来的访问者来说,这个答案并没有真正回答你的问题。
C# 7.1无法发布的问题是由于在某些版本的Visual Studio 2017中缺少必要的配置导致的。解决方法是在发布文件(.pubxml)中添加<LangVersion>latest</LangVersion>
,或者在.csproj文件的<PropertyGroup>
标签下添加<LangVersion>latest</LangVersion>
。这样做可以消除这个错误。
具体来说,根据一个在Visual Studio开发者社区的解决方案,将<LangVersion>latest</LangVersion>
添加到.pubxml文件中可以解决这个问题。对于在Mac版本的Visual Studio上运行的情况,可能无法找到.pubxml文件或者配置选项,但只需在.csproj文件的<PropertyGroup>
标签下添加<LangVersion>latest</LangVersion>
即可解决。有用户在更新到Visual Studio for Mac V 8.2后表示问题已解决,不需要添加LangVersion。
然而,也有用户反馈在更新到Visual Studio 2017版本15.9.20后仍然存在问题,但上述解决方法依然有效。
总之,问题的解决方法是在发布文件或.csproj文件中添加<LangVersion>latest</LangVersion>
。