c# - O.NET SDK atual não suporta o direcionamento do.NET Core 2.2.(SDK 2.2.202)




visual-studio .net-core (4)

Instalando o dotnet-sdk-2.2.103-win-x64 corrigiu o problema

Outro desses muitos problemas semelhantes, embora nenhuma das soluções pesquisadas, ajudou (veja abaixo qual deles é examinado).

No momento em que escrevo isto, o .NET Core v2.2 está fora de pré-visualização, sendo a versão mais recente v2.2.202 (data de lançamento, 02-04-2019).

Eu instalei aquele via "Instalar outros frameworks", eu instalei o x64, todas as outras versões que eu instalei anteriormente também são essa versão.

Após a instalação, quando eu crio um novo projeto, ele aparece:

Mas quando eu, então, abro as propriedades, isso não acontece:

dotnet --info dentro do diretório do projeto, dá o seguinte resultado:

.NET Core SDK (reflecting any global.json):
 Version:   2.2.202
 Commit:    8a7ff6789d

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

Host (useful for support):
  Version: 2.2.3
  Commit:  6b8ad509b6

.NET Core SDKs installed:
  2.1.2 [C:\Program Files\dotnet\sdk]
  2.1.4 [C:\Program Files\dotnet\sdk]
  2.1.201 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.401 [C:\Program Files\dotnet\sdk]
  2.1.505 [C:\Program Files\dotnet\sdk]
  2.2.202 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.0.3 [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.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.3-servicing-26724-03 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

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

Eu tentei:

  • Criar um global.json ( resposta SO ), isso produziu apenas mais erros, pois não foi possível carregar o projeto que está segmentando v2.2
  • Ativar os SDKs de visualização nas configurações ( resposta SO )
  • Eu tentei instalar a versão x86, mas isso também deu mais erros, pois estava confuso sobre qual deles usar agora. Então isso começou a reclamar que o .NET Standard não estava sendo instalado.
  • Eu atualizei o Visual Studio e Visual Studio Build Tools para as versões mais recentes, que é 15.9.11 (data de lançamento, 02-04-2019)
  • Quando eu construo através da linha de comando dotnet build no diretório da solução, ele é construído com sucesso, então deve ser uma coisa do visual studio.
  • verificou que apenas C:\Program Files\dotnet\ está nas Variáveis ​​de Ambiente, portanto, C:\Program Files (x86)\dotnet\ não está presente.
  • Olhei para essas opções , fiz todas elas, mas não defini a variável de ambiente MSBuildSDKsPath , pois tenho outros projetos também em necessidade com o 2.1. Eu verifiquei que não há atualmente nenhum MSBuildSDKsPath definido por isso não deve ser forçado para essa versão.

Todas as tentativas acima, é claro, envolvendo reiniciar o computador ou reiniciar o VS.


Isso provavelmente parece uma otimização de instalador para o VS, que remove os antigos SDKs de serem gananciosos demais e remove versões das quais as versões antigas do VS confiam, mas no momento isso é mais uma hipótese enquanto as equipes de MS estão investigando. Veja este problema no GitHub para mais relatórios semelhantes.

As versões 2.2.1xx SDK (!) Usam o MSBuild 15 e o 2.2.2xx usam o MSBuild 16.

O VS 2017 precisa resolver uma versão local que seja compatível com o MSBuild 15, portanto, se o 2.2.1xx foi removido durante uma atualização, isso pode falhar.

Você pode consertar isso reinstalando uma versão compatível - por exemplo, 2.2.105 - em https://dotnet.microsoft.com/download/dotnet-core/2.2

Para descobrir qual SDK usa quais componentes, você pode verificar o arquivo DependencyVersions.props nas fontes <3.0 eo arquivo Versions.props para fontes de = = 3.0 (visualização) - versão do MSBuild é definida por meio da propriedade MicrosoftBuildPackageVersion .



Adicionando a resposta de @ martin-ullrich de https://github.com/aspnet/AspNetCore.Docs/issues/11844 , porque fazia mais sentido para mim. (Talvez porque é sexta-feira, e eu só precisava: "Vá aqui e faça isso.")

Vá para https://dotnet.microsoft.com/download/dotnet-core/2.2 e baixe o instalador para a versão 2.2.105. Qualquer coisa> = 2.2.200 não funcionará no VS 2017. Ambos 2.2.105 e 2.2.202 contêm a mais recente e melhor versão do .NET Core 2.2, mas eles diferem na versão das ferramentas que eles incluem e são baseados - o trem 1xx é MSBuild 15., NuGet 4. etc. e o trem 2xx é MSBuild 16., NuGet 5. e assim por diante e Visual Studio só procura a versão mais recente compatível com sua versão do MSBuild - para VS 2017 esta é a versão 2.1.502 que não pode segmentar o .NET Core 2.2. (E para adicionar mais confusão, existem agora versões 2.1.6xx com versões da ferramenta VS 2019 junto com o tempo de execução do .NET Core 2.1)

[@] leecow e [@] rowanmiller estão trabalhando na atualização dessa página em relação ao VS, veja também dotnet / core # 2542 e dotnet / sdk # 3076 que são aproximadamente o mesmo problema.

Minha contribuição: Após instalar o 2.2.105, apaguei a (s) pasta (s) intitulada '2.2.202' no diretório C:\Program Files (x86)\dotnet\sdk e / ou C:\Program Files\dotnet\sdk para que dotnet --info agora lê o seguinte:







.net-core-2.2