dotnet / sdk

Core functionality needed to create .NET Core projects, that is shared between Visual Studio and CLI
https://dot.net/core
MIT License
2.7k stars 1.06k forks source link

'global.json' not work #2629

Open yhvicey opened 5 years ago

yhvicey commented 5 years ago

Hi, I've created a related issue on dotnet/docs#8720 about no warning or errors while specifying a sdk version that doesn't exist. Then I found that when I open my project in Visual Studio, it shows that the project is using Microsoft.NetCore.App (2.1.5), and I have 2.1.500-preview-009335 installed on my machine. Is this package's version controlled by global.json? Or it will just simply use the latest version I installed?

yhvicey commented 5 years ago

<<< Copied related issue's content here >>>

I have below 2.1.4yz sdks installed on my machine:

$ dotnet --list-sdks
2.1.400-preview-009063 [C:\Program Files\dotnet\sdk]
2.1.400-preview-009171 [C:\Program Files\dotnet\sdk]
2.1.400 [C:\Program Files\dotnet\sdk]

And I specified sdk version to 2.1.403 in global.json, however there's no error or warning when I build these projects. Is it by design? In Matching rules section it says that in this situation there should be an error.

livarcocc commented 5 years ago

Can you run dotnet --info from your project folder in the command line and let us know the output? Also, dotnet build?

livarcocc commented 5 years ago

The Microsoft.NETCore.App version is implicitly controlled through the SDK version that you have installed and is using.

The SDK version to be used can be controlled through the global.json file.

yhvicey commented 5 years ago

Since I've already installed 2.1.403 after I found it's missing, I renamed the 2.1.403 folder under C:\Program Files\dotnet\sdk and then do the following tests:

Output of dotnet --info:

.NET Core SDK (reflecting any global.json):
 Version:   2.1.400
 Commit:    8642e60a0f

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.17763
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.1.400\

Host (useful for support):
  Version: 2.1.5
  Commit:  290303f510

.NET Core SDKs installed:
  1.1.9 [C:\Program Files\dotnet\sdk]
  1.1.10 [C:\Program Files\dotnet\sdk]
  1.1.11 [C:\Program Files\dotnet\sdk]
  2.1.4 [C:\Program Files\dotnet\sdk]
  2.1.100 [C:\Program Files\dotnet\sdk]
  2.1.101 [C:\Program Files\dotnet\sdk]
  2.1.200-preview-007474 [C:\Program Files\dotnet\sdk]
  2.1.200 [C:\Program Files\dotnet\sdk]
  2.1.201 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.300 [C:\Program Files\dotnet\sdk]
  2.1.301 [C:\Program Files\dotnet\sdk]
  2.1.400-preview-009063 [C:\Program Files\dotnet\sdk]
  2.1.400-preview-009171 [C:\Program Files\dotnet\sdk]
  2.1.400 [C:\Program Files\dotnet\sdk]
  2.1.500-preview-009335 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 1.0.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.13 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.10 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

global.json:

{
    "sdk": {
        "version": "2.1.403"
    },
    "msbuild-sdks": {
        "Microsoft.Build.Traversal": "1.0.41"
    }
}

output of dotnet build:

Microsoft (R) Build Engine version 15.8.166+gd4e8d81a88 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restoring packages for <ProjectDir>\<ProjectName>.csproj...
  Generating MSBuild file <ProjectObjDir>\<ProjectName>.csproj.nuget.g.props.
  Generating MSBuild file <ProjectObjDir>\<ProjectName>.csproj.nuget.g.targets.
  Restore completed in 549.66 ms for <ProjectDir>\<ProjectName>.csproj.
  <ProjectName> -> <ProjectBinDir>\Debug\netcoreapp2.1\win-x64\<ProjectName>.dll

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:13.40
nguerrera commented 5 years ago

This is actually a duplicate of https://github.com/dotnet/core-setup/issues/3805

Seems it was never backported to 2.1 even though that was discussed on the PR. cc @johnbeisner

yhvicey commented 5 years ago

I've upgraded to 2.1.500 without preview and this error seems resolved.