Como determinar se o .NET Core está instalado

302

Eu sei que, para versões mais antigas do .NET, você pode determinar se uma determinada versão está instalada, seguindo

https://support.microsoft.com/en-us/kb/318785  

Existe um método oficial para determinar se o .NET Core está instalado?

(E não me refiro ao SDK, quero verificar um servidor sem o SDK, para determinar se ele possui o DotNetCore.1.0.0-WindowsHosting.exe instalado)

eu consigo ver

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NET Cross-Platform Runtime Environment\.NET Framework 4.6\Win\v1-rc1 

com a versão nº 1.0.11123.0 na minha máquina com Windows 7, mas não vejo as mesmas coisas na minha máquina com Windows 10.

weloytty
fonte
1
Boa pergunta. Qualquer pessoa que segue o .NET Core sabe que o versionamento em tempo de execução e SDK é um tópico muito confuso.
18717 Sean
@Chiramisu, Todos os verificados abaixo funcionaram para mim, mas devido a alguns detalhes irrelevantes da implementação, fui com a Configuração do Estado Desejado e usei isso para garantir que a hospedagem do servidor dnc windows esteja instalada. (Ou seja, tenho Assegurar = ausente no DotNetCore.1.0.0-WindowsServerHosting.exe e Assegurar = presente no DotnetCore.2.0.5-WindowsServerHosting.exe) (ou qualquer outro nome de arquivo que você desejar). O DSC lida com toda a bagunça envolvida na verificação para garantir que o pacote apropriado seja instalado / desinstalado.
23818 welleytty
3
dotnet --list-SDKs e dotnet --list-tempos de execução estão disponíveis no meu host com 2.1.300-preview1-008174 como a versão ativa
jumpercake
Execute o comando abaixo no powershell dotnet --info Source
manikanta kumar

Respostas:

209

Usando o PowerShell :

Duração:

(dir (Get-Command dotnet).Path.Replace('dotnet.exe', 'shared\Microsoft.NETCore.App')).Name

SDKs:

(dir (Get-Command dotnet).Path.Replace('dotnet.exe', 'sdk')).Name
Andriy Tolstoy
fonte
1
@MarceloFilho Qual versão você tem? Você pode obtê-lo usando [System.Environment]::OSVersion. Testei os comandos mencionados acima usando o Windows 10 versão 10.0.15063.0. Funciona bem.
Andriy Tolstoy
6
Eu posso confirmar que isso funciona perfeitamente no servidor Windows 2016 e no Windows 10.
user5389726598465
1
O comando dotnet não está disponível apenas com o SDK instalado? O que era exatamente o oposto do que o OP pedia.
Aurimas N.Julho
@AurimasN. Não, o comando dotnet.exe está disponível nas implantações do SDK e do Runtime. O SDK simplesmente adiciona os comandos CLI necessários e as bibliotecas de pré-requisito, necessários para executar "build do dotnet.exe" e "execução do dotnet.exe" de dentro de um projeto.
21818 Jason Mock
3
Funciona no PowerShell no Windows 10, mas eu prefiro dotnet --infosugerido em outras respostas.
Manfred
345

Ótima pergunta, e a resposta não é simples. Não existe um comando "mostre-me todas as versões principais do .net", mas há esperança.

EDITAR:

Não tenho certeza de quando foi adicionado, mas o comando info agora inclui essas informações em sua saída. Ele imprimirá os tempos de execução e SDKs instalados, além de outras informações:

dotnet --info

Se você deseja apenas ver os SDKs: dotnet --list-sdks

Se você deseja apenas ver os tempos de execução instalados: dotnet --list-runtimes

Estou no Windows, mas acho que funcionaria no Mac ou Linux também com uma versão atual.

Além disso, você pode consultar o .NET Core Download Archive para ajudá-lo a decifrar as versões do SDK.


INFORMAÇÕES ANTERIORES: Tudo abaixo deste ponto é informações antigas, que são menos relevantes, mas ainda podem ser úteis.

Consulte os tempos de execução instalados :

Abrir C:\Program Files\dotnet\shared\Microsoft.NETCore.Appno Windows Explorer

Consulte os SDKs instalados :

Abrir C:\Program Files\dotnet\sdkno Windows Explorer

(Fonte para os locais: blog de um desenvolvedor )


Além disso, você pode ver as versões mais recentes do Runtime e do SDK instaladas, emitindo estes comandos no prompt de comando:

dotnet A versão mais recente do Runtime é a primeira coisa listada. AVISO LEGAL: Isso não funciona mais, mas pode funcionar para versões mais antigas.

dotnet --version Versão mais recente do SDK AVISO LEGAL: Aparentemente, o resultado disso pode ser afetado por qualquer arquivo de configuração global.json.


No macOS, você pode verificar a versão do núcleo .net usando o comando abaixo.

ls /usr/local/share/dotnet/shared/Microsoft.NETCore.App/

No Ubuntu ou Alpine:

ls /usr/share/dotnet/shared/Microsoft.NETCore.App/

Ele listará a pasta com o nome da versão instalada.

Sean
fonte
15
No macOS:ls /usr/local/share/dotnet/shared/Microsoft.NETCore.App/
Sergii Volchkov
No meu caso, dotnet --version disse 1.1.0, mas as versões instaladas incluíam 1.1.2. Apenas para verificar, renomei o nome dotnet.exe e o dotnet --version não encontrou nenhuma versão. Reinstalei o 1.1.2 e o dotnet --version novamente disse que tinha o 1.1.0.
William Jockusch
1
@SergiiVolchkov obrigado pelo comentário. Você pode me dizer como desinstalar dotnet core1.0.0 do mac?
Pankaj Parkar 02/09
1
.NET Núcleo 2.1.0 acrescenta "dotnet --list-tempos de execução" e "dotnet --list-SDKs"
b8adamson
1
dotnet --versionlista o SDK em uso, que é o mais recente por padrão, mas nem sempre é verdadeiro. Se você tiver um arquivo global.json em sua estrutura de pastas, ele exibirá qualquer versão definida em global.json, e não a mais recente.
Maíra Wenzel - MSFT
164

A resposta correta para ambientes somente de tempo de execução sem o SDK, como um servidor com o pacote Windows Hosting instalado, é executar o PowerShell com o seguinte comando:

dotnet --info

De acordo com a documentação oficial :

  • o --version opção "Imprime a versão do .NET Core SDK em uso". e, portanto, não funcionará se o SDK não estiver instalado. Enquanto que...
  • A --infoopção "Imprime informações detalhadas sobre as ferramentas da CLI e o ambiente, como o sistema operacional atual, confirma o SHA para a versão e outras informações".

Aqui está outro artigo oficial explicando como funciona o versionamento do .NET Core . :)

Chiramisu
fonte
9
O que é incrível é que esta é a resposta real. E está enterrado embaixo de uma pilha de respostas de pessoas que nem se preocuparam em ler a pergunta corretamente.
Jammer
--infonão funciona no meu servidor, enquanto --versionque funciona. A opção de informações dá-me:Did you mean to run dotnet SDK commands? Please install dotnet SDK from: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
ArieKanarie
@ArieKanarie Pode ser necessário reparar usando a Ferramenta de reparo do Microsoft .NET Framework .
Chiramisu 4/06
106

Você pode verificar se o dotnet.exe está disponível:

where dotnet

Você pode então verificar a versão:

dotnet --version

ATUALIZAÇÃO: Agora há uma maneira melhor de fazer isso, o que é bem explicado em muitas outras respostas:

dotnet --info

Robert Paulsen
fonte
34
Ele supera a versão CLI do dotnet, não o tempo de execução. São duas coisas diferentes. Ter a CLI instalada, não significa que o tempo de execução está instalado e se é a mesma versão.
27917 Aleksanderis
sshinstalado em um servidor com apenas o tempo de execução instalado para confirmar, ele não funciona. Veja esta resposta .
Gdraphael #
49

Uma das maneiras de determinar se .NET Coreestá instalado no Windows é:

  • Pressione Windows+R
  • Tipo cmd
  • No prompt de comando, digite dotnet --version

dotnet --version

Se o .NET Coreestiver instalado, não devemos receber nenhum erro nas etapas acima.

Mohammed Zameer
fonte
6
Veja o comentário acima para a mesma resposta: Ele ultrapassa a versão da CLI do dotnet, não o tempo de execução. São duas coisas diferentes. Tendo CLI instalada, não runtime média está instalado e se é mesma versão
Michael Freidgeim
Nitpcking, mas você não pode ter uma CLI que funcione sem um tempo de execução instalado. Portanto, se você tiver uma CLI, terá algum tempo de execução, apenas pode ser uma versão completamente diferente.
omajid
@omajid Não tenho certeza do que você está falando. O CLI Estou me referindo a na minha resposta é o prompt CLI comando padrão no Windows 10 x 64 que é instalado / disponíveis sem instalações especiais
Mohammed Zameer
Esta não é a resposta para a pergunta.
Jammer
@Jammer eu sugiro que você fornecer uma edição sugestão
Mohammed Zameer
20

(1) Se você estiver no sistema Window.

Abra o prompt de comando.

 dotnet --version

(2) Execute o comando abaixo Se você estiver no sistema Linux.

dotnet --version

dotnet --info
Hiren Parghi
fonte
type dotnet --version- Não funciona no Windows 10. dotnet --versionfunciona embora. Você tem certeza da sua resposta ou foi typeum erro de digitação? Ambos os comandos do linux funcionam no Win 10 para mim.
Aditya
A @Aditya concorda que essa typeé uma instrução para o leitor, e não parte do comando. Editei a postagem para corresponder.
JohnLBevan
Sim, foi uma instrução.
Hiren Parghi 19/04/19
15

Eu trabalho principalmente com máquinas e servidores de desenvolvimento do Windows.

Eu só queria salientar (pelo menos para o NET.Core 2.0 e superior) que a única coisa necessária é executar dotnet --infoem um prompt de comando para obter informações sobre a versão mais recente instalada. Se o .NET Core estiver instalado, você receberá algumas respostas.

Na minha máquina de desenvolvimento (Windows 10), o resultado é o seguinte. O SDK é 2.1.2 e o tempo de execução é 2.0.3.

.NET Command Line Tools (2.1.2)

Product Information:
 Version:            2.1.2
 Commit SHA-1 hash:  5695315371

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

Microsoft .NET Core Shared Framework Host

  Version  : 2.0.3
  Build    : a9190d4a75f4a982ae4b4fa8d1a24526566c69df

Em um dos meus servidores executando o Windows Server 2016 com Windows Server Hosting pack (sem SDK), o resultado é o seguinte. Sem SDK, o tempo de execução é 2.0.3.

Microsoft .NET Core Shared Framework Host

Version  : 2.0.3
Build    : a9190d4a75f4a982ae4b4fa8d1a24526566c69df

Felicidades !

Hakan Çelik MK1
fonte
10

Os seguintes comandos estão disponíveis no .NET Core SDK 2.1 (v2.1.300) :

Para listar todos os SDKs do .NET Core instalados, use: dotnet --list-sdks

Para listar todos os tempos de execução do .NET Core instalados, use dotnet --list-runtimes

(testado no Windows desde a escrita, em 3 de junho de 2018 e novamente em 23 de agosto de 2018)

Atualização a partir de 24 de outubro de 2018: provavelmente, a opção Melhor agora está dotnet --infoem um terminal ou em uma janela do PowerShell, como já mencionado em outras respostas.

Manfred
fonte
Todos nós podemos aprender. Curioso para saber o motivo do voto negativo. Talvez deixe um comentário quando você fizer um voto negativo?
Manfred
Não diminuí a votação, mas especulo que seja porque você mencionou comandos "disponíveis no .NET Core SDK", enquanto a pergunta indica "Desejo verificar um servidor sem o SDK". Sua resposta seria melhorada se você determinar quais dos comandos acima funcionam quando apenas o tempo de execução está instalado.
Home
@ToolmakerSteve Sim, esse poderia ser o ponto. Porém, não tenho um ambiente sem o SDK e não gostaria de removê-lo ... Agradecemos o seu comentário. Muito apreciado.
Manfred
5

No Windows, você só precisa abrir o prompt de comando e digite:

dotnet --version

Se a estrutura principal .net estiver instalada, você obterá a versão instalada atual

veja a captura de tela:

insira a descrição da imagem aqui

Eli Dagan
fonte
3
Isto dá-lhe a versão do SDK, não a versão de tempo de execução
silkfire
1

Como alternativa, você pode apenas olhar para dentro

C: \ Arquivos de programas \ dotnet \ sdk

Zeus
fonte
0

Veja C:\Program Files\dotnet\shared\Microsoft.NETCore.Appquais versões do tempo de execução têm diretórios lá. Fonte.

Muitas das respostas aqui confundem o SDK com o Runtime, que são diferentes.

jaycer
fonte
0

Depois de todas as outras respostas, isso pode ser útil.

Abra seu aplicativo no Visual Studio. No Solutions Explorer, clique com o botão direito do mouse no seu projeto. Clique em Propriedades. Clique em aplicativo. Em "Target Framework", clique no botão suspenso e lá está todas as estruturas instaladas.

BTW - agora você pode escolher qual estrutura deseja.

Baruch Atta
fonte
Eu usei o Visual Studio 2017. YMMV.
Baruch Atta
-6

Não precisa de um processo de instalação.

Eu fixei o "VSCore" na minha barra de tarefas (win10), então abra-o e abra um gerenciador de tarefas. Escolha o processo "Visual Studio Core", expanda a seta esquerda e, sobre qualquer um deles, clique com o botão direito do mouse sobre ele e clique em "Abrir localização do arquivo " cardápio.

Se você não se lembra onde está instalado, procure o arquivo "Code.exe" em todos os seus discos rígidos.

JoseRamos
fonte
1
A questão é sobre o .NET CORE e não o ide VS CODE.
User5389726598465