2010-06-08 4 views
2

Je suis en train de fusionner deux fichiers. L'un d'eux est .net3.5 application WPF et d'autres est WPF notify icon dllcréer une application de fichier unique

-je utiliser la commande suivante:

IlMerge /target:winexe /out:PS.exe "PlayerSearcher.exe" "Hardcodet.Wpf.TaskbarNotification.dll" 

Mais quand je lance la suite assebmly mon application est écrasé avec cette erreur

EventType: clr20r3 P1: ps.exe
P2: 1.0.0.0 P3: 4c0ee52f P4 : PresentationFramework P5: 3.0.0.0 P6: 4938d608 P7: 9a1 P8: 46 P9: System.IO.IOException

Pourquoi? Et comment puis-je construire une application de fichier unique?

+0

Veuillez noter qu'il n'est pas possible de fusionner des assemblys WPF en utilisant ILMerge (jusqu'à la version 2.11.0502) – froeschli

Répondre

1

Juste une supposition, mais vous pourriez avoir besoin de fusionner des références supplémentaires. Par exemple, peut-être que vous avez également copié quelque chose dans le dossier bin du projet avec le fichier EXE et oublié de l'inclure?

Vous ne devriez pas besoin de fusionner les ensembles .NET Framework à partir du GAC si, à moins qu'il ya un problème autour de la « copie locale » Réglage Vrai/faux:

Maintenant, le projet que vous Modified automatiquement tous les assemblages référencés ont été fusionnés. Les assemblages marqués "Copie locale" seront fusionnés de sorte que les assemblys système et les assemblys GAC ne seront pas fusionnés par défaut.

- http://blogs.msdn.com/b/jomo_fisher/archive/2006/03/05/544144.aspx

Peut-être, juste pour le déboguer, essayez de copier les classes .NET Framework localement dans votre projet et les fusionner aussi pour voir si cela fonctionne. Cela pourrait aider à commencer à isoler l'erreur.

+0

Mais quelles classes dois-je copier? PresentationCore, WindowsBase etc? – Neir0

+0

Ce ne sont pas des classes mais des assemblages que vous devez utiliser. Je suggère de regarder le nœud de références dans VS ou la boîte de dialogue et définir toutes les références à copier local, puis utiliser MSIL sur le dossier bin entier de vos assemblys. Cet article fournit des conseils sur la façon de gérer les assemblys: http://msdn.microsoft.com/en-us/library/wkze6zky(VS.80).aspx –