IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Créer un .exe d'une méthode C#


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur debutant
    Inscrit en
    Août 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur debutant

    Informations forums :
    Inscription : Août 2018
    Messages : 3
    Par défaut Créer un .exe d'une méthode C#
    Bonjour à tous,
    Après avoir fait des recherches, je n'ai pas trouvé de solutions à mon problème, alors me voila !
    J'ai un programme écrit en C# sous visual studio 2013 comprennant différentes méthodes. J'aimerais créer un fichier executable, et donc que je peux lancer depuis la cmd, pour chacune de ces méthodes. Le top serait même de pouvoir passer des arguments. J'ai évidemment pénsé à la solution qui est de faire un projet pour chacune de ces méthode et d'utiliser le .exe dans Bin/Debug, mais deja c'est pas beau, ca m'oblige à récuperer mes réferences pour chacun de ces projets et ca ne me permet pas de passer des arguments. Voila voila, j'espère être claire, et que vous saurez m'éclairer !
    Merci d'avance !

  2. #2
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Salut

    Je ne suis pas certain de bien avoir compris ton problème, mais tu peux mettre tes méthodes dans un projet de type bibliothèque (ce qui te fera une dll en sortie), pour ensuite référencer cette dll dans un ou plusieurs projets de type console selon tes besoins

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur debutant
    Inscrit en
    Août 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur debutant

    Informations forums :
    Inscription : Août 2018
    Messages : 3
    Par défaut
    Merci de ta réponse rapide !
    Je ne sais pas trop comment expliquer mieux, puisque je ne sais exactement ce que je veux... En gros l'objectif final serait d'avoir des commandes de type :
    "C:/projet/solution/bin/debug/MonAppli.methode1(param1,param2,param3...)"
    Et ce, pour chacune des fonctions dans mon programme. Tous ca pour les lancer depuis un logiciel d'intégration continue (Jenkins), ces méthodes étant en rélalité des tests fonctionnels.
    Ce que tu propose est de créer un projet pour chacune de mes méthodes, et de créer un gros projet console qui peut appeler chacun des autres "projets méthodes" ? Est ce que j'obtiendrai ainsi une commande cmd pour chaque méthode ?

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 196
    Par défaut
    un programme console démarre sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    static void Main(string[] args)
    le paramètre args contient les paramètres (surement découpé sur espace pour faire le tableau de string)
    à toi donc de définir une syntaxe, dans ce void de tester quels sont les arguments passés pour appeler juste la méthode que tu veux exécuter selon le paramètre
    il est aussi possible de passer des paramètres à la méthode en les incluant dans le parsing

    le plus courant est de gérer
    monexe.exe /untruc
    et
    monexe.exe -untruc

    mais c'est libre, tu peux faire un truc du genre
    monexe.exe /nomMethod param1="valeur" param2=5

    plus il y a de méthodes, de paramètre et de type de paramètre possible plus ca peut faire beaucoup de code ^^

    ou sinon faire du code générique qui cherche la méthode par reflection, ca a l'avantage de faire peu de code
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur debutant
    Inscrit en
    Août 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur debutant

    Informations forums :
    Inscription : Août 2018
    Messages : 3
    Par défaut
    Merci beaucoup de ta réponse ! C'est bien ca que je cherchais, je n'ai pas du taper les bons mots clés sur google ..

  6. #6
    Membre Expert
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 940
    Par défaut
    Un exemple de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    class Program
    {
    	public static void Main(string[] args)
    	{
    		var calc = typeof(Program).GetMethods().FirstOrDefault(m => m.Name != "Main" && m.Name.ToLower() == args[0].ToLower());
    		if(calc == null) 
    		{
    			Console.WriteLine($"La commande {args[0]} n'existe pas.");
    			return;
    		}
    		int result = (int)calc.Invoke(null, args.Skip(1).ToArray());
    		Console.WriteLine(result);
    	}
     
    	static int Add(string args[])
    	{
    		return int.Parse(args[0]) + int.Parse(args[1]);
    	}
     
    	static int Sub(string args[])
    	{
    		return int.Parse(args[0]) - int.Parse(args[1]);
    	}
     
    	static int Mult(string args[])
    	{
    		return int.Parse(args[0]) * int.Parse(args[1]);
    	}
     
    	static int Div(string args[])
    	{
    		return int.Parse(args[0]) / int.Parse(args[1]);
    	}
    }
    L'usage dans une ligne de commande (si le programme final s'appelle calc.exe) :

    >calc add 2 4

  7. #7
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 47
    Par défaut
    je travaille souvent avec des boucles donc voila une idée si j'ai bien compris ton problème.

    j'ai déjà fais un programme similaire, je voulais faire une sorte de base de données à la c#

    j'ai mes méthodes dans mon programme, je fais une boucle qui demande un saisi a l'utilisateur et en fonction de ce qu'il entre j'appelle la méthode adéquate.

    c'est un peu court mais j'espère que sa répond a ton problème.

  8. #8
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 934
    Par défaut
    Citation Envoyé par tardash Voir le message
    je travaille souvent avec des boucles donc voila une idée si j'ai bien compris ton problème.

    j'ai déjà fais un programme similaire, je voulais faire une sorte de base de données à la c#

    j'ai mes méthodes dans mon programme, je fais une boucle qui demande un saisi a l'utilisateur et en fonction de ce qu'il entre j'appelle la méthode adéquate.

    c'est un peu court mais j'espère que sa répond a ton problème.
    Rien à voir avec la demande consistant à appeler une exe avec des paramètre et obtenir un résultat directement sans avoir à passer par toute une série de question.

  9. #9
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 934
    Par défaut
    L'idée de noxen est selon moi un bon début mais tu sera vite bloqué suivant ce que tu souhaite faire.

    Je serais toi je partirai sur un pattern Interpreter (cherche sur google) pour analyser les arguments de la ligne de commande et ensuite exécuter ce qu'il faut pour renvoyer le résultat.

    Edit : Si tu souhaite passer ta chaîne sous le format que tu as noté (MaMethode(Param1, Param2)), il vaut mieux la passer entre guillemet pour que ce soit analysé comme un seul et même argument.

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/09/2015, 10h47
  2. Créer un objet via une méthode statique de la classe
    Par Kromagg dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 05/04/2012, 14h29
  3. Créer un .exe d'une application java
    Par ja1985va dans le forum Langage
    Réponses: 5
    Dernier message: 31/08/2010, 12h16
  4. commande pour créer le (.exe)d'une fonction
    Par ninasec dans le forum MATLAB
    Réponses: 1
    Dernier message: 12/04/2009, 11h55
  5. Réponses: 3
    Dernier message: 21/03/2006, 13h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo