[在框架4.7.2中使用的C#8功能不会在Visual Studio中引起构建错误,但会在TFS上造成]] << [

问题描述 投票:-1回答:1
我有一个用于.NET Framework 4.7.2的C#类库。我的一位开发人员添加了一个接口,并将某些成员标记为public,仅使用C#8才支持。无论是他的计算机还是我的计算机,都未给出有关此问题的任何错误或警告,这使其无法通过代码。评论。但是,我们的TFS服务器抛出了正确的错误。

界面:

public interface IHintManager { public void AddJoinHint(string leftTable, string rightTable, JoinHint hint); public void AddQueryHint(QueryHint hint); public void AddTableHint(string table, TableHint hint); void InjectHints(DbContext context, DbCommand command, DbInterceptionContext interceptionContext); }

。csproj设置为4.7.2:

<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>

TFS错误:

enter image description here

本地生成输出:

enter image description here

为什么我们不会在本地看到此错误,为了将来在本地开发人员和TFS之间获得一致的构建结果,我们需要更改什么?

我有一个用于.NET Framework 4.7.2的C#类库。我的一位开发人员添加了一个界面,并将某些成员标记为public,只有使用C#8才支持该界面。他的计算机和...

c# tfs
1个回答
2
投票
VS2019使用所选的.Net框架版本来确定受支持的C#语言版本,除非被上述内容覆盖。

对于VS2017,您可以通过项目设置选择使用最新的语言版本(无需编辑.CSProj文件),如果这样做,则在升级到VS2019后,将允许使用C#8 ...

由于事件的顺序,我们遇到了与您完全相同的问题。现在我们已经决定,使用<LangVersion>latest</LangVersion>不再安全,因为升级到Visual Studio的较新版本之后,您最终可能会意外地启用了比您预期的更高版本的C#语言。

© www.soinside.com 2019 - 2024. All rights reserved.