.NET Core (Español)

.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.

Esta traducción de .NET Core fue revisada el 2021-09-13. Si existen cambios puede actualizarla o avisar al equipo de traducción.

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-binAUR 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:

Instalación de PowerShell Core

Puede instalar PowerShell Core como una herramienta «global» ( ):

# 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 .

Completado por tabulación

Todos los programas de dotnet que ocupan para parsear sus argumentos tienen soporte para completado automático. Para habilitarlo, solo tiene que añadir unas lineas a su archivo .bashrc / , 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 , 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.

Esto sucede porque el runtime es distribuido en un paquete aparte en Arch Linux. Asegúrese de tener instalado el paquete .

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 . Si no es así, se podría observar un error como este:

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 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:

Véase también

gollark: Would you like to purchase our premium vowel pack, containing capital *and* lowercase letters?
gollark: You dropped this:E
gollark: oh bees you have doomed us all.
gollark: https://images-ext-1.discordapp.net/external/imeAQuzmAKuZ7RqL0wfUQS-vScpNX44sH6Qrfu7zKm0/https/media.discordapp.net/attachments/740645364196966431/744555048599683102/image0-1.gif?width=410&height=421
gollark: State machines ARE a cool type of machine, but a *game*?
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.