gpt4 book ai didi

asp.net - C# 7 功能在 Visual Studio 2017 RC 上的 Web 项目中不起作用

转载 作者:行者123 更新时间:2023-12-02 00:43:09 29 4
gpt4 key购买 nike

我的解决方案中有几个项目,C# 7 功能(例如元组和抛出表达式)在所有库项目中都能正常工作,但有一个(非核心)Web 项目由于以下原因无法编译C# 7 功能上的错误。编译后,错误窗口很快就会自行清除,大概是因为 IDE/编辑器编译相同的单元时没有错误。我必须使用输出窗口来查看编译器错误。就好像 IDE/编辑器假设使用 C# 7,但构建中使用的编译器不是。

我尝试将“__DEMO__,__DEMO_EXPERIMENTAL__”添加到条件编译符号中,但无济于事。我尝试过针对不同版本的框架,并编辑了 web.config,包括 system.webcompilationtargetFramework 标签.

错误示例:

if (!config.Properties.TryGetValue(modelId, out var model)) // error CS1003: Syntax error, ',' expected
if (modelDescription is ComplexTypeModelDescription complexTypeModelDescription) // error CS1026: ) expected

以下是该项目的 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')" />

更新:我尝试使用 VS 2017 RC 中的最新模板创建一个新的 Web 项目并复制我的源文件。一样。

我还尝试显式设置 Project |属性 |构建 |高级|语言版本为 7。导致“/langversion 的选项‘7’无效”。

最佳答案

solution是将 Microsoft.Net.Compilers nuget 包更新为 >=2.0.0。截至目前,要出现 2.0.0 版本,必须选中包管理器顶部的“包括预发布”复选框。安装此软件后,语言版本高级设置不必从默认覆盖。

关于asp.net - C# 7 功能在 Visual Studio 2017 RC 上的 Web 项目中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42216740/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com