Comme indiqué sur Site web d'ILMerge Traitez ces fichiers DLL comme des ressources, de Jeffrey Richter. aquí :
De nombreuses applications consistent en un fichier EXE qui dépend de plusieurs DLL de nombreux fichiers DLL. Lors du déploiement de cette application, tous les fichiers doivent être déployés. Cependant, il existe une technique que vous pouvez utiliser pour déployer un seul fichier EXE. Tout d'abord, identifiez tous les fichiers DLL que votre fichier EXE dont dépend votre fichier EXE et qui ne font pas partie de Microsoft .NET Framework lui-même. Ajoutez ensuite ces DLL à votre projet Visual Studio. Pour chaque fichier DLL que vous ajoutez, affichez ses propriétés et changez son "Build Action" en "Embedded Resource". Ainsi, le compilateur C# intégrer le(s) fichier(s) DLL dans votre fichier EXE, et vous pouvez déployer ce fichier EXE unique. fichier EXE. Au moment de l'exécution, le CLR ne sera pas en mesure de trouver les assemblages DLL dépendants, ce qui est un problème de sécurité. DLL dépendants, ce qui constitue un problème. Pour résoudre ce problème, lorsque votre application l'application, enregistrez une méthode de rappel avec l'événement ResolveAssembly ResolveAssembly de l'AppDomain. Le code devrait ressembler à ceci :
AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => {
String resourceName = "AssemblyLoadingAndReflection." +
new AssemblyName(args.Name).Name + ".dll";
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)) {
Byte[] assemblyData = new Byte[stream.Length];
stream.Read(assemblyData, 0, assemblyData.Length);
return Assembly.Load(assemblyData);
}
};
Maintenant, la première fois qu'un thread appelle une méthode qui fait référence à un type dans un fichier DLL dépendant, l'événement AssemblyResolve sera déclenché et le code de code de rappel montré ci-dessus trouvera la ressource DLL intégrée désirée et la chargera en appelant une surcharge de la méthode Load de Assembly qui prend un Byte[] comme argument.
0 votes
Vous cherchez uniquement des applications gratuites ou vous pouvez payer quelques dollars pour cela ?
0 votes
Si l'application est suffisamment bonne et peut gérer WPF, nous envisagerons probablement des applications commerciales également.