Introducción al desarrollo multiplataforma utilizando .NET en WSL Ubuntu

Traducido del artículo de haydenb "Comenzando con el desarrollo multiplataforma usando .NET en Ubuntu en WSL" el 3 de junio de 2020 1

.NET es un marco de software de código abierto para crear aplicaciones multiplataforma en Linux, Windows y macOS. Ubuntu 2 en WSL le permite crear y probar aplicaciones para Ubuntu y Windows al mismo tiempo. ¿Qué sucede cuando los fusionamos? Este blog demostrará cómo instalar la pila de desarrollo .NET en WSL y crear una aplicación sencilla compatible con el sistema operativo, y luego probarla en Linux y Windows.

Habilitar WSL 1

Inicie PowerShell como administrador y ejecute:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Habilitar WSL 1

Si solo desea instalar WSL 1, puede reiniciar su computadora y omitir el siguiente paso.

Restart-Computer

Si desea instalar WSL 2, no reinicie, continúe con el siguiente paso:

Habilitar WSL 2 (Windows 10 2004+)

Para obtener más detalles sobre Ubuntu en WSL 2, consulte " Ubuntu en WSL 2 está generalmente disponible " 3 .

Inicie PowerShell como administrador y ejecute:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Habilitar WSL 2

Luego reinicie el sistema operativo Windows:

Restart-Computer

Instalar Ubuntu en WSL

Descarga Ubuntu desde Microsoft Store:

Ubuntu 20.04 LTS en Microsoft Store 4

Ubuntu 20.04 LTS en Microsoft Store

Para obtener más información sobre cómo instalar Ubuntu en WSL , consulte Ubuntu en la página 5 de la wiki de WSL .

Instalar Terminal de Windows

Descargue Windows Terminal de Microsoft Store:

Terminal de Windows en Microsoft Store 6

Terminal de Windows en Microsoft Store

También puede descargar Windows Terminal desde GitHub .

Ejecute Ubuntu en WSL

Abra Windows Terminal y ejecute:

ubuntu.exe

Cuando ejecute Ubuntu en WSL por primera vez, se instalará y le pedirá que cree un usuario de Linux, que es independiente de los usuarios de Windows.

Ejecute Ubuntu en WSL

Salga y vuelva a abrir la Terminal de Windows, verá que Ubuntu aparece en el menú desplegable:

Ubuntu en el menú desplegable

Puede configurar Windows Terminal en settings.json y configurar Ubuntu como el elemento predeterminado.

Actualizar Ubuntu en WSL

Debe buscar actualizaciones con regularidad y ejecutar la actualización en Ubuntu en WSL. Usamos apt (administrador de paquetes de Ubuntu) para lograr.

Para buscar actualizaciones, ejecute:

sudo apt update

actualización de sudo apt

Para obtener la actualización, ejecute:

sudo apt upgrade

actualización de sudo apt

Puede usarlos &&para conectarse en la misma fila y agregar una -yetiqueta, actualizaciones automáticas y actualizaciones de aplicaciones disponibles:

sudo apt update && sudo apt upgrade -y

Agregue el repositorio .NET y la clave de firma de Microsoft

Necesitamos agregar el repositorio .NET de Microsoft y la clave de firma a apt. Descargaremos e instalaremos un paquete de Microsoft para hacer esto.

Asegúrese de estar instalando el repositorio correcto para su versión de Ubuntu. Puede verificar la versión actual de Ubuntu con el siguiente comando:

cat /etc/os-release

El siguiente ejemplo usa Ubuntu 20.04, la última versión LTS de Canonical. Si todavía usa Ubuntu 16.04, 18.04 o 19.10, puede encontrar la biblioteca de recursos correspondiente en el Documento 7 de Microsoft . Para obtener más información sobre la diferencia entre LTS y las versiones intermedias, tenemos un ciclo de lanzamiento en la página 8 .

Descargue la biblioteca de recursos y el paquete de claves de Microsoft para la versión 20.04:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

Descargue el repositorio de Microsoft y el paquete de claves

Utilice dpkg -i para instalar manualmente el paquete de recursos de Microsoft:

sudo dpkg -i packages-microsoft-prod.deb

Instale el paquete de repositorio de Microsoft

Ahora, cuando actualice apt, verá que la biblioteca de recursos de Microsoft se ha verificado y actualizado:

actualización apta

Instalar .NET SDK

Utilice apt para instalar .NET y las dependencias relacionadas desde el repositorio de Microsoft:

sudo apt-get install dotnet-sdk-3.1 -y

Instale el SDK de .NET

Nuevo espacio de trabajo

Cree un nuevo directorio de trabajo y ábralo:

mkdir dotnetproject
cd dotnetproject/

Crea un espacio de trabajo

Crea un nuevo proyecto .NET

Úselo dotnet newpara crear un nuevo proyecto de consola .NET, que creará un Program.csarchivo con nombre y algunas otras carpetas y archivos necesarios:

dotnet new console

Crea un nuevo proyecto .NET

Explore nuestras aplicaciones .NET

Enumere los archivos en su nuevo proyecto .NET:

ls

Verifique Program.csel contenido:

cat Program.cs

Explore nuestra aplicación .NET

Ejecute el programa de muestra:

dotnet run

Ejecute el programa de muestra

Personaliza nuestra aplicación .NET

Abra en su editor favorito Program.cs: vi, nano, emacs o VS Code con extensión WSL remota :

Código con la extensión WSL remota

Aquí, usamos nano incluido en Ubuntu en WSL:

nano Program.cs

nano Program.cs

Primero, agregamos el espacio de nombres de servicios de interoperabilidad :

using System.Runtime.InteropServices;

Luego pon:

Console.WriteLine("Hello World!");

Reemplazar con:

Console.WriteLine($"Hello {System.Environment.GetEnvironmentVariable("USER")}");

if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
    
    
  Console.WriteLine("We're on Linux!");
}

if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
    
    
  Console.WriteLine("We're on Windows!");
}

Console.WriteLine("Version {0}", Environment.OSVersion.Version);

reemplazar código

Este código también se puede encontrar aquí 9 .

Esta aplicación nos dice: el usuario actual, verifique si está en Windows o Linux, y luego proporcione la versión del kernel del sistema operativo.

Salga y guarde, luego ejecute:

dotnet run

Salir y guardar y ejecutar

Haga que nuestra aplicación .NET sea multiplataforma

Necesitamos actualizar el archivo de proyecto .NET dotnetproject.csprojpara indicarle a .NET que compile para plataformas Linux y Windows.

Abra nuestro editor dotnetproject.csprojy agregue:

<PropertyGroup>
    <RuntimeIdentifiers>win10-x64;linux-x64</RuntimeIdentifiers>
</PropertyGroup>

Esto guiará a .NET para crear archivos binarios autónomos para Windows 10 x64 y Linux x64.

Haga que nuestra aplicación .NET sea multiplataforma

Cree nuestra aplicación multiplataforma

Cuando hemos configurado el proyecto, construir una aplicación .NET se vuelve tan simple:

dotnet publish -r win10-x64
dotnet publish -r linux-x64

dotnet publicar

El proyecto se puede /bin/encontrar en la carpeta de archivos binarios de cada plataforma y todas sus bibliotecas necesarias son independientes:

ls bin/Debug/netcoreapp3.1/

ls bin / Debug / netcoreapp3.1 /

Prueba la versión de Linux

Puede ejecutar directamente el archivo binario de Linux de la siguiente manera:

./bin/Debug/netcoreapp3.1/linux-x64/publish/dotnetproject

Prueba la compilación de Linux

Prueba la versión de Windows

Para ejecutar la versión de Windows, cópiela en el sistema de archivos de Windows:

cp -r ~/dotnetproject/bin/Debug/netcoreapp3.1/win10-x64/publish /mnt/c/Users/Hayden/OneDrive/Desktop/

Nota del traductor:
aquí está el /mnt/directorio raíz del sistema Ubuntu, consulte el sistema de archivos de Windows, /mnt/c/es decir , la unidad C del sistema de Windows.

Entonces corre:

/mnt/c/Users/Hayden/OneDrive/Desktop/publish/dotnetproject.exe

Prueba la compilación de Windows

Hasta ahora, hemos creado y ejecutado la misma aplicación para Linux y Windows. Podemos usar WSL para probarlos al mismo tiempo.


Autor: haydenb
Traductor: Technical Zemin
Editor: Technical Verses
enlaces: texto en inglés

Número público: Estación de traducción técnica


  1. https://ubuntu.com/blog/creating-cross-platform-applications-with-net-on-ubuntu-on-wsl Introducción al desarrollo multiplataforma utilizando .NET en Ubuntu en WSL ↩︎

  2. https://ubuntu.com/wsl Ubuntu en WSL ↩︎

  3. https://ubuntu.com/blog/ubuntu-on-wsl-2-is-generally-available Ubuntu en WSL 2 está generalmente disponible ↩︎

  4. https://www.microsoft.com/store/productId/9N6SVWS3RX71 Ubuntu 20.04 LTS en Microsoft Store ↩︎

  5. https://wiki.ubuntu.com/WSL Ubuntu en WSL wiki ↩︎

  6. https://www.microsoft.com/store/productId/9N0DX20HK701 Terminal de Windows en Microsoft Store ↩︎

  7. https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu ↩︎

  8. https://ubuntu.com/about/release-cycle ↩︎

  9. https://pastebin.ubuntu.com/p/swbPxXXSKD/ ↩︎

Supongo que te gusta

Origin blog.csdn.net/weixin_47498376/article/details/112051033
Recomendado
Clasificación