Generar archivo .mpack con VS4Mac

¡Hola!
El otro día os enseñé un pequeño ejemplo de un addin disponible para VS4Mac que nos permite generar nuestros modelos (clases en C#) a partir de un JSON utilizando QuickType. Cuando creamos un addin para VS4Mac, utilizamos una extensión llamada AddinMaker que está disponible desde la galería de extensiones de VS y nos va a facilitar el poder depurar, pero, ¿y cómo generamos el archivo para que cualquier usuario de VS4Mac pueda instalar nuestra extensión?
Los archivos que podemos instalar como extensiones en VS4Mac son archivos .mpack. Para generarlos tenemos algunas opciones, pero quizá la más sencilla es a través de un ejecutable llamado vstool que se instala junto con VS4Mac y está ubicado en /Applications/Visual Studio.app/Contents/MacOS/vstool. Crear el archivo .mpack es muy sencillo, sólo tenemos que indicarle a la herramienta vstool el comando para generar el archivo .mpack y pasarle la ruta donde está ubicada la dll que hemos generado y a partir de la cual queremos crear el .mpack. Por ejemplo, nos vamos a colocar en la carpeta de salida de nuestro proyecto (en mi caso Release/bin/net461) y vamos a escribir en el terminal lo siguiente:

"/Applications/Visual Studio.app/Contents/MacOS/vstool" setup pack VS4Mac.JsonToClass.dll


Esto nos generará un nuevo archivo dentro de Release/bin/net461 llamado VS4Mac.JsonToClass.JsonToClass_0.2.mpack que podremos instalar directamente desde la ventana de extensiones de VS4Mac.
Puede ser muy útil que integremos la generación de este archivo siempre que compilemos en Release, por ejemplo. Para ello sólo tendremos que integrar la sentencia anterior dentro de nuestro proceso de compilación. Lo podemos hacer de forma manual modificando el archivo .csproj de nuestro proyecto, o desde la ventana de opciones de proyecto de VS4Mac. Si nos decidimos a hacerlo de forma manual, tendríamos que añadir algo parecido a lo siguiente:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<CustomCommands>
<CustomCommands>
<Command>
<type>AfterBuild</type>
<command>"/Applications/Visual Studio.app/Contents/MacOS/vstool" setup pack ${TargetDir}/VS4Mac.JsonToClass.dll</command>
<workingdir>${TargetDir}</workingdir>
</Command>
</CustomCommands>
</CustomCommands>
</PropertyGroup>

Le estamos diciendo más o menos que, para la configuración Release, y después de generar la build, ejecuta el comando que genera el .mpack obteniendo el archivo dll a partir del directorio de salida.
Como decíamos, esto mismo lo podemos hacer de forma visual desde las opciones del proyecto:

Y poco más hay que decir 🙂 Espero que os sea útil.

¡Un saludo!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *