[英]How can I use, in Visual Studio 2017, the “C# Interactive” window to query a source in my “Data Connections”
[英]How can I use C# 8 with Visual Studio 2017?
我想在 Visual Studio 2017 中使用 C# 8.0(尤其是范圍和不可為空的引用類型)。這可能嗎?
展望未來,微軟希望比過去更緊密地將 C# 語言版本與框架版本聯系起來。 他們真的只希望你在 .NET Core 3.x 和 .NET Standard 2.1 項目中使用 C# 8,這意味着使用 Visual Studio 2019。我對C# 8 支持 .NET Framework 的回答是什么? 有所有血腥的細節。
但是,如果您真的想要,現在可以通過使用將 C# 7 引入 Visual Studio 2015的相同技巧在 Visual Studio 2017 中使用 C# 8 :將最新版本的Microsoft.Net.Compilers Nuget 包安裝到項目中。 它有效,但當然 VS 2017 不了解 C# 8 語法,因此它看起來不是很漂亮。 這是一個屏幕截圖,顯示 VS 2017 能夠使用可為空引用類型和靜態本地方法(兩者都是 C# 8 功能)編譯一個小型測試庫:
如果您想嘗試,這里是 .csproj 和代碼:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net452</TargetFrameworks>
<LangVersion>8.0</LangVersion>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Net.Compilers" Version="3.3.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>
——
using System;
namespace CSharp8Test
{
public class Class1
{
public string? NullableString { get; } = "Test";
public static void Test()
{
Console.WriteLine(Test2());
static int Test2() => 5;
}
}
}
補充一下 series0ne 關於主要版本的評論:確實,新的 VS 通常附帶新的 C# 版本。 但是,根據以往的經驗,可以將以前版本的 VS 升級到編譯較新版本的 C# 代碼,主要是通過升級“Microsoft.Net.Compilers”Nuget 包。 您可以參考這篇文章了解更多信息。 如何在 Visual Studio 2015 中使用 c#7?
您可以在 vs2017 中使用Microsoft.Net.Compilers.Toolset而不是Microsoft.Net.Compilers
此包旨在替代Microsoft.Net.Compilers(僅適用於 Windows 的包)和 Microsoft.NETCore.Compilers。 這些包現在已棄用,將來會被刪除。
該包需要 MSBuild 15.0 和 .NET Destkop 4.7.2 或 .NET Core 2.1
軟件包版本:
與 vs2019 相比,包版本映射了 c#8 支持的能力。
如何使用
將這些行添加到 .csproj
<PropertyGroup>
//....
<LangVersion>8.0</LangVersion>
<Nullable>enable</Nullable> <!-- to support nullable reference type -->
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Net.Compilers.Toolset" Version="3.3.1" PrivateAssets="All" />
</ItemGroup>
您還可以在 Visual Studio 2019 的任何 .NET 項目中使用 C# 8。https : //dirkstrauss.com/enabling-c-8-in-visual-studio-2019/
雖然有一些限制,但這是可能的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.