VS2015 + Resharper:不要使用 C#6
VS2015 + Resharper: Don't use C#6
我目前正在测试 VS2015,看看它对我们的解决方案有何反应。我遇到了一些麻烦,因为 VS2015 带来了 C#6,我还无法使用(因为我的同事没有这个,因为我们的构建机器在几个月前也没有)。
我看到我应该能够为每个项目指定 C#5 的语言版本。我为我们所有的项目(其中 270 个)都这样做了。现在,当我使用 C#6 功能进行编译时,出现错误,这很好。
但是,resharper 一直试图让我将表达式正文用于属性、字符串插值……
有没有办法让 Resharper 不提出这种更改?
据我所知,您刚刚在 Roslyn 中禁用了 C#6 支持:
项目Properties/Build/Advanced/Language版本。
但您还必须通过 selecting 告诉 ReSharper 不要建议 C#6 功能 (参见评论)在解决方案资源管理器中创建一个项目,然后在属性 window:
中更改以下内容
好消息是您可以在解决方案资源管理器中同时 select 多个项目。
ReSharper 将使用项目的默认 C# 级别。默认情况下,这没有设置,这意味着它总是浮动 - 所以 VS2015 使用 C# 6。所以你可以通过项目属性 → 构建 → 高级 → 语言版本指定语言版本(它在 .csproj 中设置 属性文件),ReSharper 将遵循该设置。
但是,ReSharper 不会收到值已更改的通知,因此不会即时更新,但它会在 project/solution 重新加载时遵守设置。
或者,根据@lucas-trzesniewski 的回答,您可以通过直接告诉 ReSharper 它应该针对哪个 C# 版本来覆盖项目的 LangVersion(或默认,缺少 LangVersion)。
我目前正在测试 VS2015,看看它对我们的解决方案有何反应。我遇到了一些麻烦,因为 VS2015 带来了 C#6,我还无法使用(因为我的同事没有这个,因为我们的构建机器在几个月前也没有)。
我看到我应该能够为每个项目指定 C#5 的语言版本。我为我们所有的项目(其中 270 个)都这样做了。现在,当我使用 C#6 功能进行编译时,出现错误,这很好。
但是,resharper 一直试图让我将表达式正文用于属性、字符串插值……
有没有办法让 Resharper 不提出这种更改?
据我所知,您刚刚在 Roslyn 中禁用了 C#6 支持:
项目Properties/Build/Advanced/Language版本。
但您还必须通过 selecting 告诉 ReSharper 不要建议 C#6 功能 (参见评论)在解决方案资源管理器中创建一个项目,然后在属性 window:
好消息是您可以在解决方案资源管理器中同时 select 多个项目。
ReSharper 将使用项目的默认 C# 级别。默认情况下,这没有设置,这意味着它总是浮动 - 所以 VS2015 使用 C# 6。所以你可以通过项目属性 → 构建 → 高级 → 语言版本指定语言版本(它在 .csproj 中设置 属性文件),ReSharper 将遵循该设置。
但是,ReSharper 不会收到值已更改的通知,因此不会即时更新,但它会在 project/solution 重新加载时遵守设置。
或者,根据@lucas-trzesniewski 的回答,您可以通过直接告诉 ReSharper 它应该针对哪个 C# 版本来覆盖项目的 LangVersion(或默认,缺少 LangVersion)。