Ric*_*ett 24 c# msbuild visual-studio-2017 c#-7.1
要在Visual Studio 2017中使用新的C#7.1语言功能,请将设置添加<LangVersion>latest</LangVersion>到项目文件中.
但是,从MSBuild(版本15.3.409.57025,位于C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin)构建此类项目会导致错误:
CSC : error CS1617: Invalid option 'latest' for /langversion;
must be ISO-1, ISO-2, Default or an integer in range 1 to 6.
Run Code Online (Sandbox Code Playgroud)
MSBuild尚未支持此功能,还是可以实现此功能?
这包括最初在Visual Studio 2013和2015中创建的200多个项目.它们都使用Target Framework Migrator工具重新定位到.NET 4.7 (它保存了大量点击并显示 - 基于检查.csproj文件更改 -正确地完成工作).
这些项目都是从Visual Studio 2017成功构建的.
Dom*_*nas 23
Microsoft.Net.Compilersnuget包不起作用,不需要安装.project/build settingsC# 7.1在Debug 和 Release构建属性中至少设置或更高.(通过:项目菜单> [ProjectName]属性>构建选项卡> [高级]按钮>语言版本).
将其设置为最新并没有工作.
还要确保您运行的是最新的MSBuild版本.
添加对Microsoft.Net.Compilers包的引用(版本2.3.x,以获取C#7.1).
Microsoft.Net.Compilers
该软件包不仅包括C#和Visual Basic编译器,还修改MSBuild目标,以便使用包含的编译器版本而不是任何系统安装的版本.安装后,此程序包需要Microsoft Build Tools 2015.
我们发现我们的 MVC 项目触发了这个问题。
为了解决这个问题,我们将Microsoft.CodeDom.Providers.DotNetCompilerPlatform这些项目使用的 NuGet 包从版本1.0.0更新到1.0.7。