Cómo determinar si .NET Core está instalado

302

Sé que para versiones anteriores de .NET, puede determinar si se instala una versión dada siguiendo

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

¿Existe un método oficial para determinar si está instalado .NET Core ?

(Y no me refiero al SDK, quiero verificar un servidor sin el SDK, para determinar si tiene DotNetCore.1.0.0-WindowsHosting.exe instalado)

puedo ver

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

con la versión # 1.0.11123.0 en mi máquina con Windows 7, pero no veo las mismas cosas en mi máquina con Windows 10.

weloytty
fuente
1
Buena pregunta. Cualquiera que siga a .NET Core sabe que las versiones de SDK y Runtime son un tema muy confuso.
Sean
@Chiramisu, todas las comprobadas a continuación funcionaron para mí, pero debido a algunos detalles de implementación irrelevantes, utilicé la Configuración de estado deseada y la usé para asegurarme de que esté instalado el servidor de Windows dnc. (Es decir, asegúrese = Ausente en DotNetCore.1.0.0-WindowsServerHosting.exe y Asegúrese = Presente en DotnetCore.2.0.5-WindowsServerHosting.exe) (o cualquier otro nombre de archivo que desee). DSC maneja todo el desorden involucrado con la verificación para asegurarse de que el paquete apropiado esté instalado / desinstalado.
weloytty
3
dotnet --list-sdks y dotnet --list-runtimes están disponibles en mi host con 2.1.300-preview1-008174 como versión activa
jumpercake
Ejecute el siguiente comando en powershell dotnet --info Source
manikanta kumar

Respuestas:

209

Usando Powershell :

Tiempos de ejecución:

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

SDK:

(dir (Get-Command dotnet).Path.Replace('dotnet.exe', 'sdk')).Name
Andriy Tolstoy
fuente
1
@MarceloFilho ¿Qué versión tienes? Puedes conseguirlo usando [System.Environment]::OSVersion. Probé los comandos mencionados anteriormente con Windows 10 versión 10.0.15063.0. Funciona bien.
Andriy Tolstoy
66
Puedo confirmar que esto funciona perfectamente en Windows Server 2016 y Windows 10.
user5389726598465
1
¿No está disponible el comando dotnet solo con el SDK instalado? Lo cual era exactamente opuesto a lo que preguntó el OP
Aurimas N.
@AurimasN. No, el comando dotnet.exe está disponible con las implementaciones SDK y Runtime. El SDK simplemente agrega los comandos CLI necesarios y las bibliotecas de requisitos previos, necesarios para realizar "compilación dotnet.exe" y "ejecución dotnet.exe" desde un proyecto.
Jason Mock
3
Funciona en PowerShell en Windows 10, pero prefiero dotnet --infosugerido en otras respuestas.
Manfred
345

Gran pregunta, y la respuesta no es simple. No existe el comando "mostrarme todas las versiones principales de .net", pero hay esperanza.

EDITAR:

No estoy seguro de cuándo se agregó, pero el comando de información ahora incluye esta información en su salida. Imprimirá los tiempos de ejecución y SDK instalados, así como alguna otra información:

dotnet --info

Si solo desea ver los SDK: dotnet --list-sdks

Si solo desea ver los tiempos de ejecución instalados: dotnet --list-runtimes

Estoy en Windows, pero supongo que funcionaría también en Mac o Linux con una versión actual.

Además, puede hacer referencia al archivo de descarga de .NET Core para ayudarlo a descifrar las versiones del SDK.


INFORMACIÓN ANTERIOR: Todo lo que se encuentra debajo de este punto es información antigua, que es menos relevante, pero que puede ser útil.

Ver tiempos de ejecución instalados :

Abrir C:\Program Files\dotnet\shared\Microsoft.NETCore.Appen el Explorador de Windows

Ver SDK instalados :

Abrir C:\Program Files\dotnet\sdken el Explorador de Windows

(Fuente de las ubicaciones: el blog de un desarrollador )


Además, puede ver las últimas versiones de Runtime y SDK instaladas mediante la emisión de estos comandos en el símbolo del sistema:

dotnet La última versión de Runtime es lo primero que se enumera. DESCARGO DE RESPONSABILIDAD: Esto ya no funciona, pero puede funcionar para versiones anteriores.

dotnet --version La última versión del SDK AVISO: Al parecer, el resultado de esto puede verse afectada por los archivos de configuración global.json.


En macOS, puede verificar la versión principal de .net utilizando el siguiente comando.

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

En Ubuntu o Alpine:

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

Enumerará la carpeta con el nombre de la versión instalada.

Sean
fuente
15
En macOS:ls /usr/local/share/dotnet/shared/Microsoft.NETCore.App/
Sergii Volchkov
En mi caso, dotnet --version dijo 1.1.0, pero las versiones instaladas incluían 1.1.2. Solo para verificar, cambié el nombre de dotnet.exe y dotnet --version no encontró ninguna versión. Luego reinstalé 1.1.2, y dotnet --version nuevamente dijo que tenía 1.1.0.
William Jockusch
1
@SergiiVolchkov gracias por comentar. ¿Me puede decir cómo desinstalar dotnet core1.0.0 de mac?
Pankaj Parkar
1
.NET Core 2.1.0 agrega "dotnet --list-runtimes" y "dotnet --list-sdks"
b8adamson el
1
dotnet --versionenumera el SDK en uso, que es el último de forma predeterminada, pero no siempre es cierto. Si tiene un archivo global.json en la estructura de su carpeta, mostrará la versión establecida en global.json, no la última.
Maíra Wenzel - MSFT
164

La respuesta correcta para entornos de tiempo de ejecución sin SDK, como un servidor con el paquete de alojamiento de Windows instalado, es ejecutar PowerShell con el siguiente comando:

dotnet --info

Según la documentación oficial :

  • La --versionopción "Imprime la versión del SDK de .NET Core en uso". y por lo tanto no funciona si el SDK no está instalado. Mientras...
  • La --infoopción "Imprime información detallada sobre las herramientas de CLI y el entorno, como el sistema operativo actual, confirma SHA para la versión y otra información".

Aquí hay otro artículo oficial que explica cómo funciona el versionado de .NET Core . :)

Chiramisu
fuente
99
Lo increíble es que esta es la respuesta real. Y está enterrado debajo de una pila de respuestas de personas que ni siquiera se molestaron en leer la pregunta correctamente.
Jammer
--infono funciona en mi servidor, mientras --versionque funciona. La opción de información me da:Did you mean to run dotnet SDK commands? Please install dotnet SDK from: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
ArieKanarie
@ArieKanarie Es posible que deba reparar con la herramienta de reparación de Microsoft .NET Framework .
Chiramisu
106

Puede verificar si dotnet.exe está disponible:

where dotnet

Luego puede verificar la versión:

dotnet --version

ACTUALIZACIÓN: ahora hay una mejor manera de hacerlo, que se explica bien en muchas otras respuestas:

dotnet --info

Robert Paulsen
fuente
34
Supera la versión de CLI dotnet, no el tiempo de ejecución. Son dos cosas diferentes. Tener la CLI instalada, no significa que el tiempo de ejecución esté instalado y si es la misma versión.
Aleksanderis
sshed a un servidor con solo el tiempo de ejecución instalado para confirmar, no funciona. Ver esta respuesta en su lugar .
gldraphael
49

Una de las formas ficticias para determinar si .NET Coreestá instalado en Windows es:

  • Presione Windows+R
  • Tipo cmd
  • En el símbolo del sistema, escriba dotnet --version

dotnet --version

Si .NET Coreestá instalado, no deberíamos obtener ningún error en los pasos anteriores.

Mohammed Zameer
fuente
66
Vea el comentario anterior a la misma respuesta: supera la versión de CLI dotnet, no el tiempo de ejecución. Son dos cosas diferentes. Tener la CLI instalada, no significa que el tiempo de ejecución esté instalado y si es la misma versión
Michael Freidgeim el
Nitpcking, pero no puede tener una CLI que funcione sin un tiempo de ejecución instalado. Entonces, si tiene una CLI, tendrá algo de tiempo de ejecución, es solo que puede ser una versión completamente diferente.
omajid
@omajid No estoy seguro de qué CLI estás hablando. La CLI a la que me refiero en mi respuesta es la CLI del símbolo del sistema predeterminada en Windows 10 x64 que está instalada / disponible sin instalaciones especiales
Mohammed Zameer
Esta no es la respuesta a la pregunta.
Jammer
@Jammer Te sugiero que proporciones una sugerencia de edición
Mohammed Zameer
20

(1) Si está en el sistema de Windows.

Abra el símbolo del sistema.

 dotnet --version

(2) Ejecute el siguiente comando si está en un sistema Linux.

dotnet --version

dotnet --info
Hiren Parghi
fuente
type dotnet --version- No funciona en Windows 10. dotnet --versionaunque funciona. ¿Estás seguro de tu respuesta o fue typeun error tipográfico? Ambos comandos de Linux funcionan en Win 10 para mí.
Aditya
@Aditya está de acuerdo en que typees una instrucción para el lector y no parte del comando. He editado la publicación para que coincida.
JohnLBevan
Sí, fue una instrucción.
Hiren Parghi
15

Trabajo principalmente con máquinas y servidores de desarrollo de Windows.

Solo quería señalar (al menos para NET.Core 2.0 y superior) lo único que se necesita es ejecutar dotnet --infoen un símbolo del sistema para obtener información sobre la última versión instalada. Si está instalado .NET Core, obtendrá alguna respuesta.

En mi máquina de desarrollo (Windows 10) el resultado es el siguiente. SDK es 2.1.2 y el tiempo de ejecución es 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

En uno de mis servidores que ejecutan Windows Server 2016 con Windows Server Hosting pack (sin SDK), el resultado es el siguiente. Sin SDK, el tiempo de ejecución es 2.0.3.

Microsoft .NET Core Shared Framework Host

Version  : 2.0.3
Build    : a9190d4a75f4a982ae4b4fa8d1a24526566c69df

Salud !

Hakan Çelik MK1
fuente
10

Los siguientes comandos están disponibles con .NET Core SDK 2.1 (v2.1.300) :

Para enumerar todos los SDK de .NET Core instalados, use: dotnet --list-sdks

Para enumerar todos los tiempos de ejecución de .NET Core instalados, use dotnet --list-runtimes

(probado en Windows a partir de la escritura, 03 de junio de 2018, y nuevamente el 23 de agosto de 2018)

Actualización a partir del 24 de octubre de 2018: es probable que ahora haya dotnet --infouna mejor opción en un terminal o ventana de PowerShell como ya se mencionó en otras respuestas.

Manfredo
fuente
Todos podemos aprender. Curioso por saber el motivo del voto negativo. ¿Quizás dejar un comentario cuando desestime?
Manfred
No voté en contra, pero especulo que puede deberse a que mencionó comandos "disponibles con .NET Core SDK", mientras que la pregunta dice "Quiero verificar un servidor sin el SDK". Su respuesta mejoraría si determina cuál de los comandos anteriores funciona cuando solo está instalado el tiempo de ejecución .
ToolmakerSteve
@ToolmakerSteve Sí, ese podría ser el punto. Sin embargo, no tengo un entorno sin el SDK y no me gustaría ir tan lejos eliminándolo ... Sin embargo, gracias por tu comentario. Muy apreciado.
Manfred
5

En Windows, solo necesita abrir el símbolo del sistema y escribir:

dotnet --version

Si el .NET Core Framework está instalado, obtendrá la versión instalada actual

ver captura de pantalla:

ingrese la descripción de la imagen aquí

Eli Dagan
fuente
3
Esto le brinda la versión SDK, no la versión de tiempo de ejecución
silkfire
1

Alternativamente, puedes mirar dentro

C: \ Archivos de programa \ dotnet \ sdk

Zeus
fuente
0

Mire C:\Program Files\dotnet\shared\Microsoft.NETCore.Apppara ver qué versiones del tiempo de ejecución tienen directorios allí. Fuente.

Muchas de las respuestas aquí confunden el SDK con el tiempo de ejecución, que son diferentes.

jaycer
fuente
0

Después de todas las otras respuestas, esto podría resultar útil.

Abra su aplicación en Visual Studio. En el Explorador de soluciones, haga clic con el botón derecho en su proyecto. Haga clic en Propiedades Haga clic en Aplicación En "Marco de destino", haga clic en el botón desplegable y allí está, todos los marcos instalados.

Por cierto, ahora puede elegir qué marco desea.

Baruch Atta
fuente
Usé Visual Studio 2017. YMMV.
Baruch Atta
-6

No necesita un proceso de instalación.

He anclado "VSCore" en mi barra de tareas (win10), así que ábralo y abra un administrador de tareas, elija el proceso "Visual Studio Core", expanda la flecha izquierda y sobre cualquiera de ellos, haga clic con el botón derecho sobre él y haga clic en "Abrir ubicación de archivo "menú.

Si no recuerda dónde está instalado, busque el archivo "Code.exe" en todos sus discos duros.

JoseRamos
fuente
1
La pregunta es sobre .NET CORE, no el ide VS CODE.
user5389726598465