Visual Studio 2017 15.5 has been released, and along with the .NET Command Line Tools (2.1.2) , however what I want to known where can we download the standalone .NET Command Line Tools (2.1.2) ?
cc @leecow
While VS 15.5 installed the 64 bit (x64) version, we need the 32 bit (x86) version, as we currently have some 32-bit only native code... (It's being ported by the other team, but takes some time...)
This has been fixed a few days ago actually.
Why was it needed to bump the minor version? This will just add to the versioning mess of .Net Core tooling. Why can the SDK not match the maximum .Net Core version?
@bergmeister because the SDK has reasons to change beyond the runtime. In this case, we took a new version of Roslyn to enable C# 7.2 and we also took a number of perf improvements across the board that would not fit within a patch update.
I still don't see how this 'advantage' makes up for the complexity/confusion when talking about versioning, I see that only as trying to be puristic about semantic versioning. I always need to draw a table when doing various investigations where different versions of SDK/Runtime contain certain bugs. Taking that aside, Microsoft needs to ensure that it is clear what is in a package. The download page is absolutely not helpful in showing me what is in the package. I have to go to the GitHub releases and the only additonal information is the Runtime version. The re-design of the website has made it so much worse. What developers want is a nice table in a central location containing the details of what is in each package and not having to bring all that information together by going to various release noes of sdk, cli, corefx, etc.
@livarcocc then can you please explain that on the download page https://www.microsoft.com/net/download/windows
It's insanely confusing - especially when 2.1 is about to be released and then you install it looking for new 2.1 features and they aren't there.
Which is why we are doing this: https://github.com/dotnet/designs/pull/29
The Major.Minor versions of the Runtime and the SDK will from now on be aligned. We did this by abandoning semantic versioning in the SDK. But it is much better explained in the link above.
@livarcocc sorry, this might not be the best place to ask, but you mentioned that SDK 2.1.2 got the latest version of Roslyn and it should support C# 7.2, but this doesn't seem to be the case.
Am I missing something?
I've installed the latest Win 64bit SDK(2.1.4) as well as separately 2.1.2, and none of them are able to compile a ReadOnlySpan
Update: So it doesn't seem to be an issue with C# switching, as when setting in the csproj the <LangVersion>7.2</LangVersion> in keyword works, and when setting <LangVersion>7.1</LangVersion> compilation fails, which means the switching works ok, maybe it's a corefx version issue rather than the compiler.
PS C:\Users\username\projects\project-cs> dotnet --version
2.1.2
PS C:\Users\username\projects\project-cs> dotnet build
Microsoft (R) Build Engine version 15.5.179.9764 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
Restore completed in 15.02 ms for C:\Users\username\projects\project-cs\ProjectCS.csproj.
Program.cs(15,26): error CS0246: The type or namespace name 'ReadOnlySpan<>' could not be found (are you missing a using directive or an assembly reference?) [C:\Users\username\projects\project-cs\ProjectCS.csproj]
Build FAILED.
Program.cs(15,26): error CS0246: The type or namespace name 'ReadOnlySpan<>' could not be found (are you missing a using directive or an assembly reference?) [C:\Users\username\projects\project-cs\ProjectCS.csproj]
0 Warning(s)
1 Error(s)
Time Elapsed 00:00:01.98
PS C:\Users\username\projects\project-cs>
The csproj used
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<LangVersion>latest</LangVersion>
</PropertyGroup>
</Project>
@6D65 As far as I know, ReadOnlySpan<T> is only shipped with .NET Core 2.1, not with .NET Core 2.0. The 2.1 SDK still works against .NET Core 2.0 currently, as .NET Core 2.1 is not released yet.
AFAICS, you can try the System.Memory NuGet Package for a backport. Note, however, that you'll need .NET Core 2.1 or a future .NET 4.X to fully benefit from the improved performance.
Thank you, @markusschaber , I was under impression that this should be already shipped as a part of C# 7.2 and it's available already in .NET Core 2.0. Will play around with the System.Memory NuGet package, for now, to master the API.
@6D65 You need C# 7.2 support in the compiler to use those new features, that's why the compiler shipped before the runtime changes, so the devs can use the compiler to actually implement all the new APIs using Span<> in the runtime libraries :-)
@markusschaber great, thank you for explaining me. Cannot wait for NET Core 2.1, exciting stuff.
Most helpful comment
I still don't see how this 'advantage' makes up for the complexity/confusion when talking about versioning, I see that only as trying to be puristic about semantic versioning. I always need to draw a table when doing various investigations where different versions of SDK/Runtime contain certain bugs. Taking that aside, Microsoft needs to ensure that it is clear what is in a package. The download page is absolutely not helpful in showing me what is in the package. I have to go to the GitHub releases and the only additonal information is the Runtime version. The re-design of the website has made it so much worse. What developers want is a nice table in a central location containing the details of what is in each package and not having to bring all that information together by going to various release noes of sdk, cli, corefx, etc.