.NET Core (Español)

Esta traducción de
.NET Core
fue revisada el
2021-09-13
. Si existen
cambios
puede
actualizarla
o avisar al
equipo de traducción
.
.NET Core
es un nuevo
framework
FLOSS de Microsoft para C#, Visual Basic y F#. Está diseñado para ser multiplataforma, modular y apto para aplicaciones modernas, a diferencia de su predecesor, el
framework
.NET.
Instalación
Si solo desea ejecutar aplicaciones gestionadas por .NET Core,
instale
el paquete
dotnet-runtime
.
Para compilar aplicaciones con .NET Core, instale también
dotnet-sdk
.
Microsoft recomienda utilizar
Visual Studio Code
, su IDE FLOSS basado en
Electron
, para compilar y depurar aplicaciones .NET Core.
Instalación manual de múltiples versiones
Puede tener instaladas varias versiones del SDK o del runtime de .NET Core usando el script
dotnet-install.sh
proveído por la .NET Foundation.
Aquí
puede encontar la documentación del script.
Por ejemplo, el siguiente comando instala la ultima versión del canal «current» en
/usr/share/dotnet
:
# ./dotnet-install.sh --install-dir /usr/share/dotnet -channel Current -version latest
Si quiere simular la instalación, use el parámetro
-Dryrun
.
Una vez que esté instalada, puede ver los SDKs disponibles:
$ dotnet --list-sdks
2.2.108 [/usr/share/dotnet/sdk]
3.0.103 [/usr/share/dotnet/sdk]
$ dotnet --version
3.0.103
Desinstalación de versiones instaladas manualmente
Puede querer desinstalar las versiones desactualizadas que fueron instaladas con
dotnet-install.sh
. La
Herramienta de desinstalación de .NET
aún no tiene soporte para Linux, así que tendrá que desinstalarlas manualmente.
$ dotnet --list-sdks
5.0.100 [/usr/share/dotnet/sdk]
5.0.102 [/usr/share/dotnet/sdk]
Desinstale el SDK:
$ SDK_VERSION="5.0.100"
$ DOTNET_UNINSTALL_PATH="/usr/share/dotnet"
# rm -rf $DOTNET_UNINSTALL_PATH/sdk/$SDK_VERSION
Al usar
dotnet-install.sh
, el
host
dotnet y otros paquetes compartidos son instalados, y puede que sea necesario quitarlos dependiendo de la versión.
Termine la desinstalación de la versión de .NET (SDK,
host
, paquetes compartidos):
$ SDK_VERSION="5.0.100"
$ DOTNET_VERSION="5.0.0"
$ DOTNET_UNINSTALL_PATH="/usr/share/dotnet"
# rm -rf $DOTNET_UNINSTALL_PATH/sdk/$SDK_VERSION
# rm -rf $DOTNET_UNINSTALL_PATH/shared/Microsoft.NETCore.App/$DOTNET_VERSION
# rm -rf $DOTNET_UNINSTALL_PATH/shared/Microsoft.AspNetCore.All/$DOTNET_VERSION
# rm -rf $DOTNET_UNINSTALL_PATH/shared/Microsoft.AspNetCore.App/$DOTNET_VERSION
# rm -rf $DOTNET_UNINSTALL_PATH/host/fxr/$DOTNET_VERSION
Instalación de múltiples versiones desde el AUR
Algunos de los paquetes de dotnet en el AUR pueden ser instalados junto con otros. Solo se necesita un paquete
host
(
dotnet-host-bin
AUR
o
dotnet-host
) que contiene las herramientas para consola de comandos, y puede instalarlo con cualquiera de los SDK o Runtimes disponibles (últimos paquetes de cada versión principal). Aquí tiene una lista con los paquetes compatibles:
dotnet-host-bin
AUR
,
dotnet-runtime-bin
AUR
,
aspnet-runtime-bin
AUR
,
dotnet-sdk-bin
AUR
dotnet-host-preview-bin
AUR
,
dotnet-runtime-preview-bin
AUR
,
aspnet-runtime-preview-bin
AUR
,
dotnet-sdk-preview-bin
AUR
dotnet-runtime-3.0
AUR
,
aspnet-runtime-3.0
AUR
,
dotnet-sdk-3.0
AUR
,
dotnet-runtime-2.2
AUR
,
aspnet-runtime-2.2
AUR
,
dotnet-sdk-2.2
AUR
,
dotnet-sdk-2.2-vs2017
AUR
dotnet-runtime-2.1
AUR
,
aspnet-runtime-2.1
AUR
,
dotnet-sdk-2.1
AUR
Instalación de PowerShell Core
Puede instalar PowerShell Core como una herramienta «global» (
[1]
[2]
):
# dotnet tool install --global PowerShell
Para actualizarlo a la versión actual:
# dotnet tool update --global PowerShell
Recolección de datos
La recoleccion de datos (
telemetry
) está habilitada de manera predeterminada, pero se puede deshabilitar
estableciendo la variable de entorno
DOTNET_CLI_TELEMETRY_OPTOUT=1
.
Completado por tabulación
Todos los programas de dotnet que ocupan
System.CommandLine.Parser
para
parsear
sus argumentos tienen soporte para completado automático. Para habilitarlo, solo tiene que añadir unas lineas a su archivo
.bashrc
/
.zshrc
, como se describe en
la documentación
.
Aquí
tiene instrucciones para usar el paquete correspondiente.
Solución de problemas
No se puede encontrar ninguna versión del framework compatible
Si obtiene el siguiente error cuando intenta ejecutar un proyecto nuevo, es porque ya no es necesario que se establezca la variable
DOTNET_ROOT
, al contrario de las soluciones para varios problemas en GitHub. El paquete de Arch Linux (desde la versión 3.1) instala las versiones en
/usr/share/dotnet
, como recomienda Microsoft.
$ dotnet run
It was not possible to find any compatible framework version
The framework 'Microsoft.AspNetCore.App', version '3.1.0' was not found.
  - No frameworks were found.

You can resolve the problem by installing the specified framework and/or SDK.

The specified framework can be found at:
  -
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=3.1.0&arch=x64&rid=arch-x64
Esto sucede porque el runtime es distribuido en un paquete aparte en Arch Linux. Asegúrese de tener instalado el paquete
aspnet-runtime
.
Error "the required library libhostfxr.so could not be found"
Algunas de las herramientas del SDK de dotnet (por ejemplo,
libman
,
dotnet-watch
, etc.) asumen que tiene establecida la variable de entorno
DOTNET_ROOT
. Si no es así, se podría observar un error como este:
[3]
A fatal error occurred, the required library libhostfxr.so could not be found.
If this is a self-contained application, that library should exist in [/home/my_user/.dotnet/tools/.store/microsoft.web.librarymanager.cli/1.0.172/microsoft.web.librarymanager.cli/1.0.172/tools/netcoreapp2.1/any/].
If this is a framework-dependent application, install the runtime in the default location [/usr/share/dotnet] or use the DOTNET_ROOT environment variable to specify the runtime location.
La solución es exportar manualmente
DOTNET_ROOT
en su shell:
~/.bashrc
export DOTNET_ROOT=/opt/dotnet
Error MSB4019: The imported project "/usr/share/dotnet/sdk/.../Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Common.targets" was not found. Confirm that the expression in the Import declaration ... is correct, and that the file exists on disk.
Sucede después de actualizar la versión. La sesión en su shell tiene las variables de entorno de un SDK de dotnet distintas a las que tiene el actualmente instalado. Reinicie su shell o inicie sesión nuevamente para arreglarlo.
No se pudo encontrar el SDK especificado
Se cree que esto es causado por un conflicto entre las librerías Mono y MSBuild SDK y las de dotnet core. Para corregir esto, exporte la ruta manualmente en su shell (reemplazando el número de versión según sea necesario), por ejemplo:
~/.bashrc
export MSBuildSDKsPath=$( echo /usr/share/dotnet/sdk/3.*/Sdks );
Véase también
Página principal de .NET Core
.NET Foundation
Explorador de API de .NET