Je consomme ma pile de services à l'aide du projet EXE (tâche de démarrage pour l'application Azure) en ce sens que j'ai copié la DLL de la pile de services suivante et certaines DLL Azure dans le projet EXE.
Lorsque je construis ce projet EXE, les DLL Azure seront regroupées avec mon EXE, mais la DLL de la pile de services ne sera pas fournie avec EXE, car pour exécuter mon EXE sur n'importe quelle machine, je dois copier manuellement la DLL de toute la pile de services.
J'ai utilisé la DLL de cette pile de services pour utiliser
JsonServiceClient client = new JsonServiceClient(servicepath);
Que dois-je faire pour regrouper toutes ces DLL dans mon EXE?
c#
assemblies
exe
ilmerge
servicestack
Arun Rana
la source
la source
L'outil que vous recherchez s'appelle ILMerge . C'est un outil de ligne de commande et peut être utilisé comme ceci:
ilmerge /target:winexe /out:MyApp.exe MyExe.exe ServiceStack.dll ServiceStack.Interfaces.dll ServiceStack.ServiceInterface.dll ServiceStack.Text.dll
Il existe également un article qui décrit comment inclure ILMerge dans la configuration de votre projet VS ici
la source
Costura (un complément Fody) est un excellent outil pour inclure des assemblys référencés en tant que ressources intégrées . L'auteur Simon Kropp le décrit comme suit:
Le résultat est une solution super simple qui nécessite simplement de récupérer Costura.Fody de NuGet.
Fonctionnalités:
la source
Essayez ILMerge-GUI, la fusion .NET . C'est une interface graphique
Ilmerge
qui évite tout travail en ligne de commande.la source
Si vous avez des dépendances WPF, vos options peuvent être plus limitées ..... ILMerge ne semble pas les gérer. Costura.Fody (comme mentionné par Codefox ci-dessus) a parfaitement fonctionné pour nous et a mis environ 5 minutes à démarrer ... une très bonne expérience.
Installez avec Nuget (en sélectionnant le projet par défaut correct dans la console du gestionnaire de package)
Il fusionne toutes les DLL marquées "Copy Local" = true et produit un fichier .EXE fusionné (à côté de la sortie standard, dont la plupart n'est plus nécessaire) qui est également compressé. Celui-ci peut ensuite être utilisé de manière autonome.
La licence est MIT afin que vous puissiez modifier / distribuer selon vos besoins.
https://github.com/Fody/Costura/
la source
Consultez le projet ServiceStack.Gap qui montre plusieurs exemples de comment ILMerge ServiceStack en un seul .exe multiplateforme .
ServiceStack comprend également un certain nombre d'autres fonctionnalités particulièrement bien adaptées à la création d'applications intégrées dans lesquelles:
la source
.net core 3 introduit deux nouvelles options dans la configuration du projet, appelées publication et découpage de fichier unique.
Vous pouvez trouver plus de détails sur les documents ici , la configuration du projet copiée ici pour référence.
<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
Il est entièrement pris en charge pour combiner les deux options ensemble pour obtenir un assemblage unique découpé pour votre application.
la source