Skip to content

Compilation es ES

JustArchi edited this page Sep 28, 2019 · 47 revisions

Compilación

La compilación es el proceso de crear un archivo ejecutable. Esto es lo que quieres hacer si quieres añadir tus propios cambios a ASF, o si por cualquier razón no confías en los archivos ejecutables proporcionados en las versiones oficiales. Si eres usuario y no desarrollador, lo más probable es que quieras usar ejecutables ya compilados, pero si quieres usar los tuyos propios, a aprender algo nuevo, continua leyendo.

ASF puede ser compilado en cualquier plataforma actualmente soportada, siempre que tengas todas las herramientas para hacerlo.


.NET Core SDK

Independientemente de la plataforma, necesita .NET Core SDK completo (no solo runtime) para compilar ASF. Las instrucciones de instalación se pueden encontrar en la página de instalación de .NET Core. Necesitas instalar la versión apropiada de .NET Core SDK para tu sistema operativo. Después de una instalación exitosa, el comando dotnet debería estar funcionando y operativo. Puedes verificar si funciona con dotnet --info. También asegúrate de que tu .NET Core SDK coincida con los requisitos de runtime de ASF.


Compilación

Suponiendo que tienes .NET Core SDK operativo y en la versión apropiada, simplemente navega al directorio fuente de ASF (repositorio de AF clonado o descargad y desempaquetado) y ejecuta:

dotnet publish ArchiSteamFarm -c "Release" -f "netcoreapp3.0" -o "out/generic" "/p:PublishTrimmed=false"

Si usas Linux/OS X, en su lugar puedes usar el script cc.sh que hará lo mismo, de una forma un poco más compleja.

Si la compilación terminó con éxito, podrás encontrar ASF en su variante source en el directorio out/generic. Esto es lo mismo que la compilación generic oficial de ASF, pero está forzado a UpdateChannel y UpdatePeriod de 0, lo que es apropiado para autocompilaciones.

Sistema operativo específico

Si tienes una necesidad específica también puedes generar un paquete .NET Core específico de un sistema operativo. En general no deberías hacer eso porque acabas de compilar la variante generic que puedes ejecutar con el ya instalado .NET Core runtime que usaste para la compilación en primer lugar, pero en caso de que lo quieras hacer:

dotnet publish ArchiSteamFarm -c "Release" -f "netcoreapp3.0" -o "out/linux-x64" -r "linux-x64"

Por supuesto, reemplaza linux-x64 con la arquitectura del sistema operativo que tienes por objetivo, como win-x64. Esta compilación también tendrá las actualizaciones deshabilitadas.

.NET Framework

En un caso muy raro en el que quieras compilar un paquete generic-netf, puedes cambiar framework objetivo de netcoreapp3.0 a net48. Ten en cuenta que necesitarás el paquete de desarrollador .NET Framework adecuado para compilar la variante netfm además de .NET Core SDK, así que lo siguiente solo funcionará en Windows:

dotnet publish ArchiSteamFarm -c "Release" -f "net48" -o "out/generic-netf" "/p:PublishTrimmed=false"

En caso de no poder instalar .NET Framework o incluso .NET Core SDK (por ejemplo, por compilar en linux-x86 con mono), puedes llamar directamente msbuild. También necesitarás especificar ASFNetFramework manualmente, ya que ASF por defecto desactiva la compilación netf en plataformas que no son Windows:

msbuild /m /p:Configuration=Release /p:PublishDir=out/generic-netf /p:TargetFramework=net48 /p:ASFNetFramework=true /p:PublishTrimmed=false /r /t:Publish ArchiSteamFarm

Desarrollo

Si quieres editar el código de ASF, puedes usar cualquier IDE (entorno de desarrollo integrado) para ese propósito, aunque eso es opcional, ya que también puedes editarlo con un bloc de notas y compilarlo con el comando dotnet descrito arriba. Aún así, para Windows recomendamos el Visual Studio más reciente (la versión free community es más que suficiente). También sugerimos usarlo junto con ReSharper (opcionalmente), aunque no es un producto gratuito.

Si quieres trabajar con el código de ASF en Linux/OS X, recomendamos el Visual Studio Code más reciente. No es tan rico como Visual Studio clásico, pero es bastante bueno.

Claro, todas las sugerencias anteriores son solo recomendaciones, puedes usar lo que desees, de todas forma se reduce al comando dotnet build. Usamos Visual Studio + ReSharper para el desarrollo de AFS, con una pequeña parte de tools herramientas de terceros que puedes encontrar en el repositorio.


Etiquetas

La rama master no garantiza estar en un estado que permita una compilación exitosa o una ejecución de ASF sin fallas, ya que es una rama de desarrollo como indicamos en nuestro ciclo de lanzamiento. Si quieres compilar o referenciar ASF desde la fuente, entonces debes usar la etiqueta apropiada para ese fin, lo que garantiza una compilación exitosa, y muy probablemente también una ejecución sin fallas (si la compilación fue marcada como versión estable). Para comprobar la "salud" actual del árbol, puedes usar nuestras CI (integración continua) - AppVeyor o Travis.


Versiones oficiales

Las versiones oficiales de ASF son compiladas por AppVeyor en Windows, con el último .NET Core SDK que coincida con los requisitos de runtime de ASF. Después de pasar las pruebas, todos los paquetes se despliegan en GitHub. Esto también garantiza transparencia, ya que AppVeyor siempre usa una fuente pública oficial para todas las compilaciones, y puedes comprar las sumas de verificación de los artefactos de AppVeyor con los activos de GitHub. Los desarrolladores de ASF no compilan ni publican versiones por ellos mismos, excepto para el proceso de desarrollo privado y depuración.

Clone this wiki locally