Consumo mi pila de servicios usando el proyecto EXE (tarea de inicio para la aplicación azul) en el sentido de que he copiado la siguiente pila de servicios DLL y algunas DLL de Azure en el proyecto EXE.
Cuando construya este proyecto EXE, las DLL de Azure se incluirán con mi EXE, pero la DLL de la pila de servicios no se incluirá con EXE, porque para ejecutar mi EXE en cualquier máquina, necesito copiar todas las DLL de la pila de servicios manualmente.
He usado la dll de esta pila de servicios para usar
JsonServiceClient client = new JsonServiceClient(servicepath);
¿Qué debo hacer para agrupar todas estas DLL en mi EXE?
c#
assemblies
exe
ilmerge
servicestack
Arun Rana
fuente
fuente
La herramienta que está buscando se llama ILMerge . Es una herramienta de línea de comandos y se puede utilizar así:
ilmerge /target:winexe /out:MyApp.exe MyExe.exe ServiceStack.dll ServiceStack.Interfaces.dll ServiceStack.ServiceInterface.dll ServiceStack.Text.dll
También hay un artículo que describe cómo incluir ILMerge en la configuración de su proyecto VS aquí
fuente
Una gran herramienta para incluir ensamblajes referenciados como recursos integrados es Costura (un complemento de Fody ). El autor Simon Kropp lo describe de la siguiente manera:
El resultado es una solución súper simple que simplemente requiere obtener Costura.Fody de NuGet.
caracteristicas:
fuente
Pruebe ILMerge-GUI, la fusión de .NET . Es una GUI
Ilmerge
que evita todo trabajo de línea de comandos.fuente
Si tiene dependencias de WPF, sus opciones pueden ser más limitadas ... ILMerge no parece ocuparse de ellas. Costura.Fody (como lo mencionó Codefox anteriormente) funcionó perfectamente para nosotros sin embargo y tardó unos 5 minutos en comenzar ... una muy buena experiencia.
Instalar con Nuget (seleccionando el proyecto predeterminado correcto en la Consola del Administrador de paquetes).
Combina todas las DLL marcadas como "Copiar local" = verdadero y produce un .EXE combinado (junto con la salida estándar, la mayoría de los cuales ahora no es necesario) que también está comprimido. Esto luego se puede usar de forma independiente.
La licencia es MIT, por lo que puede modificar / distribuir según sea necesario.
https://github.com/Fody/Costura/
fuente
De partida de los ServiceStack.Gap proyecto que muestra varios ejemplos de howto ILMerge ServiceStack en un único multiplataforma .exe .
ServiceStack también incluye una serie de otras características que son particularmente adecuadas para estas aplicaciones de creación integradas donde:
fuente
.net core 3 introduce dos nuevas opciones en la configuración del proyecto, llamadas publicación y recorte de un solo archivo.
Puede encontrar más detalles sobre los documentos aquí , la configuración del proyecto copiada aquí como referencia.
<PropertyGroup> <RuntimeIdentifier>win10-x64</RuntimeIdentifier> <PublishSingleFile>true</PublishSingleFile> </PropertyGroup> <PropertyGroup> <PublishTrimmed>true</PublishTrimmed> </PropertyGroup>
dotnet publish -r win10-x64 -p:PublishSingleFile=true dotnet publish -r <rid> -c Release
Es totalmente compatible combinar las dos opciones para obtener un conjunto único recortado para su aplicación.
fuente