N8a*_*lan 12 asp.net c#-7.0 visual-studio-2017
我在解决方案中有几个项目,C#7的功能,如元组和throw表达式,在所有库项目中都能正常工作,但是有一个(非核心)Web项目由于错误而无法编译C#7功能.在编译之后,错误窗口会快速清除,大概是因为IDE /编辑器编译相同的单元而没有错误.我必须使用输出窗口来查看编译器错误.好像IDE /编辑器假设是C#7,但构建中使用的编译器不是.
我试过__DEMO__,__DEMO_EXPERIMENTAL__在条件编译符号中添加" "无济于事.我已经尝试定位不同版本的框架,并编辑了web.config,包括compilation和targetFramework标签system.web.
示例错误:
if (!config.Properties.TryGetValue(modelId, out var model)) // error CS1003: Syntax error, ',' expected
if (modelDescription is ComplexTypeModelDescription complexTypeModelDescription) // error CS1026: ) expected
Run Code Online (Sandbox Code Playgroud)
以下是该项目的csproj文件的前几行:
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
Run Code Online (Sandbox Code Playgroud)
更新:我尝试使用VS 2017 RC中的最新模板创建一个新的Web项目并复制我的源文件.一样.
我也试过明确设置Project | 属性| 建立| 高级| 语言版本为7.结果为"/ langversion"的"无效选项'7'".
| 归档时间: |
|
| 查看次数: |
1525 次 |
| 最近记录: |