[C#] Executer assembly indépendamment
Résolu/Fermé
kelsett
Messages postés
353
Date d'inscription
dimanche 9 juillet 2006
Statut
Membre
Dernière intervention
13 octobre 2014
-
19 juil. 2010 à 13:46
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 - 20 juil. 2010 à 12:52
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 - 20 juil. 2010 à 12:52
A voir également:
- [C#] Executer assembly indépendamment
- Executer en tant qu'administrateur mac - Forum MacOS
- Impossible d'executer la macro il est possible qu'elle ne soit pas disponible ✓ - Forum Excel
- Aucun programme n'est associé à ce fichier pour exécuter cette action ✓ - Forum Windows
- Impossible d'exécuter le code car xinput1_3.dll ✓ - Forum Jeux PC
- Pour executer cette application vous devez installer au préalable ✓ - Forum Windows
5 réponses
Krysstof
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
294
19 juil. 2010 à 13:47
19 juil. 2010 à 13:47
Que veux-tu dire par "Exécuter une assembly"? un petit exemple du code, de tes classe, etc... pourrait aider.
kelsett
Messages postés
353
Date d'inscription
dimanche 9 juillet 2006
Statut
Membre
Dernière intervention
13 octobre 2014
62
Modifié par kelsett le 19/07/2010 à 13:58
Modifié par kelsett le 19/07/2010 à 13:58
// Mon assembly Assembly loAssembly; ... // Je crée une nouvelle instance de celle ci à partir de son namespace + classe object loObject = loAssembly.CreateInstance("Namespace.Class"); ... // J'appelle l'assembly à partir de son point d'entrée loObject.GetType().InvokeMember("Main", BindingFlags.InvokeMethod, null, loObject, loCodeParms);
kelsett
Messages postés
353
Date d'inscription
dimanche 9 juillet 2006
Statut
Membre
Dernière intervention
13 octobre 2014
62
19 juil. 2010 à 17:32
19 juil. 2010 à 17:32
Petit up?
Krysstof
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
294
19 juil. 2010 à 17:42
19 juil. 2010 à 17:42
je ne vais pas commenter sur l'utilité de faire une "assembly" avec des points d'entrées pour l'appeller, tu devais avoir tes raisons de vouloir faire ca.
quoi qu'il en soit, il faut, un éxécutable qui appelle ce point d'entrée. Le moyen le plus simple est de créer un simple exécutable en mode console (ou fenetré, ton choix) qui appelle ce point d'entrée.
il y a aussi la méthode "rundll" qui pourrait fonctionner, mais cela fait un moment que je ne l'ai pas utilisé, encore moins sur une assembly .NET, mais cela permet l'invocation d'une méthode dans une DLL.
petits exemple de rundll32:
http://www.walkernews.net/2007/06/06/quick-start-to-rundll32-syntax-and-example/
quoi qu'il en soit, il faut, un éxécutable qui appelle ce point d'entrée. Le moyen le plus simple est de créer un simple exécutable en mode console (ou fenetré, ton choix) qui appelle ce point d'entrée.
il y a aussi la méthode "rundll" qui pourrait fonctionner, mais cela fait un moment que je ne l'ai pas utilisé, encore moins sur une assembly .NET, mais cela permet l'invocation d'une méthode dans une DLL.
petits exemple de rundll32:
http://www.walkernews.net/2007/06/06/quick-start-to-rundll32-syntax-and-example/
Krysstof
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
294
19 juil. 2010 à 17:45
19 juil. 2010 à 17:45
arg, je viens de trouver un article chez microsoft qui dit que rundll ne fonctionne pas avec le code .NET, donc ignore mon commentaire sur RunDLL, et code toi un petit programme autonome, que tu peux rajouter à ta solution a coté du projet de ton assembly et qui ne fera rien d'autre qu'appeler le point d'entrée.
kelsett
Messages postés
353
Date d'inscription
dimanche 9 juillet 2006
Statut
Membre
Dernière intervention
13 octobre 2014
62
19 juil. 2010 à 18:05
19 juil. 2010 à 18:05
-> l'utilité de l'assembly, c'est parce que juste avant dans le code je compile à la volée un bout de code bien défini, et que mon but est d'exécuter ce bout de code directement en mémoire, ce que j'ai réussi à faire sans trop de problème, maintenant ce que je tente de faire c'est que ce bout de code exécuté en mémoire parvienne à supprimer l'exécutable qui l'a généré...
Et justement j'essaie d'éviter d'utiliser un autre programme, je trouve ca barbare :D N'y a t'il donc aucun moyen d'appeler l'assembly puis de la laisser s'exécuter sans le programme l'ayant appelé?
Et justement j'essaie d'éviter d'utiliser un autre programme, je trouve ca barbare :D N'y a t'il donc aucun moyen d'appeler l'assembly puis de la laisser s'exécuter sans le programme l'ayant appelé?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Krysstof
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
294
20 juil. 2010 à 12:52
20 juil. 2010 à 12:52
>N'y a t'il donc aucun moyen d'appeler l'assembly puis de la laisser s'exécuter sans le programme l'ayant appelé?
non.
une assembly, ou plus généralement une DLL ne peut pas s'exécuter sans que quelque chose lui fasse un appel.
cette appel peut être fait en multi thead, le "main" de ton assembly peut contenir une boucle qui ne sort jamais, le process appelant peut se terminer et se fermer
mais l'appel sera toujours fait par un programme.
tu pourrais à la limite utiliser du powershell et appeler ton assembly depuis powershell, ca a l'avantage de ne pas être compilé, et tu peux invoquer des fonction d'une assembly a la volée.
non.
une assembly, ou plus généralement une DLL ne peut pas s'exécuter sans que quelque chose lui fasse un appel.
cette appel peut être fait en multi thead, le "main" de ton assembly peut contenir une boucle qui ne sort jamais, le process appelant peut se terminer et se fermer
mais l'appel sera toujours fait par un programme.
tu pourrais à la limite utiliser du powershell et appeler ton assembly depuis powershell, ca a l'avantage de ne pas être compilé, et tu peux invoquer des fonction d'une assembly a la volée.