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 :

Lancer une appli c# via ligne de commande ne marche pas


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 28
    Points
    28
    Par défaut Lancer une appli c# via ligne de commande ne marche pas
    Hello à tous,

    Voila j'ai un problème assez énervant : j'ai une appli C# publiée, je souhaite simplement passer un paramètre au MAIN pour ouvir en premier une winform différente selon ce paramètre... Cela parait très simple mais impossible de faire prendre en compte le paramètre par le programme quand je le lance en ligne de commande ou bien via un .bat. Pourtant le passage de ce paramètre lors du débug via l'interface dotnet (propriétés du projet -> paramètres) ne pose pas de souci...

    pour mémoire j'essaie via ligne de commande en faisant :

    c:/rep_publication/MONAPPLI.application -automation

    Si vous avez une piste ce serait sympa!

    Code du main :

    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
     
     
            [STAThread]
            static void Main(string[] args)
            {
                 //On vérifie qu'il y a bien un argument.
                if (args.Length > 0)
                {
                    foreach (string s in args)
                    {
                        if (s == "automation")
                        {
                            Application.Run(new FormAutomation());
                            break;
                        }
                    }
                }
                else
                    Application.Run(new FormBase());
     
            }
            #endregion

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 97
    Points : 115
    Points
    115
    Par défaut
    c:/rep_publication/MONAPPLI.application automation

    (sans le "-")

    Ou alors :

    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
     [STAThread]
            static void Main(string[] args)
            {
                 //On vérifie qu'il y a bien un argument.
                if (args.Length > 0)
                {
                    foreach (string s in args)
                    {
                        if (s == "-automation")
                        {
                            Application.Run(new FormAutomation());
                            break;
                        }
                    }
                }
                else
                    Application.Run(new FormBase());
     
            }

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 28
    Points
    28
    Par défaut
    Non malheureusement j'avais déja essayé sans le "-" cela ne change rien

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 97
    Points : 115
    Points
    115
    Par défaut
    Je ne vois pas alors, chez moi ce code marche très bien. Vérifie que tu exécutes le bon fichier, et éventuellement affiche le contenu de args au lancement du programme.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 28
    Points
    28
    Par défaut
    Oui je sais ce n'est absolument pas logique...ce code devrait marcher... J'ai vérifié et j'exécute bien le bon fichier...quand au nombre d'args il est égal a zero!!

    Il y a quelque chose qui doit interférer mais je ne comprend pas quoi

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674
    Par défaut
    Si tu a visual studio, essaies en mode debug avec point d'arrêt dans le main pour voir ce qu'il s'y passe: tu peux mettre ton argument en paramètre... (propriété du projet => onglet "déboguer" => arguments de la ligne de commande)
    Y'a forcément un scmillblick. J'utilise aussi ce mécanisme dans une de mes applis.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 28
    Points
    28
    Par défaut
    Merci pour ta réponse, pour ce que tu proposes j'avais déja fait l'éssai et il se trouve que en DEBUG cela fonctionne.... ce qui est d'autant plus incompréhensible...

    Il y a pas un paramètre spécial a prendre en compte a la publication pour que l'appli accepte les args?? (il me semble que non mais bon...)

  8. #8
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 96
    Points : 97
    Points
    97
    Par défaut
    Bonjour,
    Ton appli, est t'elle de type "application console" ??

  9. #9
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 96
    Points : 97
    Points
    97
    Par défaut
    Bref, crée un projet de type "console application"

    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
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                if (args.Length > 0)
                {
                    foreach (string s in args)
                    {
                        if (s == "automation")
                        {
                            Console.Write("automation");
                        }
                        else
                        {
                            Console.Write("autre");
                        }
     
                    }
                }
     
            }
        }
    }
    ça devrais marchais.
    bon courage

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 28
    Points
    28
    Par défaut
    Je viens de tester avec une application console.... aucun message n'apparait...la condition if (args.Length > 0) n'est jamais respecté (args est toujours a zero...)

    Je sais plus quoi faire la....

    je lance bien pourtant :

    c:/rep_publication/MONAPPLI.application automation

    C'est dingue!!!

  11. #11
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 96
    Points : 97
    Points
    97
    Par défaut
    Pourquoi "MONAPPLI.application"
    ça deverais etre le méchant '.' dans le nom de ton application (MONAPPLI.application).

    c:/rep_publication/MONAPPLI automation

    où MONAPPLI est le nom de ton application.

    Cdt

  12. #12
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 96
    Points : 97
    Points
    97
    Par défaut
    Le problème viens pas de l'appli, mais de la façon que tu utilise pour l'utiliser .
    Si tu a créé ton application console dans le dossier c:\XXX\monApp
    Essaye:

    c:\XXX\monApp\monApp\bin\Debug\monApp.exe automation

  13. #13
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 28
    Points
    28
    Par défaut
    Oui c'est exact! dans le repertoire debug cela fonctionne sans souci... le problème est que je publie mon application vers un repertoire d'un de nos serveurs et que la publication ne donne pas de ".exe" (a part le setup.exe pour l'install mais ca ne marche pas non plus avec les params) ... en fait j'ai juste un fichier Monappli.application pour lancer cette appli.

  14. #14
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 28
    Points
    28
    Par défaut
    Il semble bien que le problème vienne de la publication CLICKONCE... si donc quelqu'un à une piste je suis preneur !

  15. #15
    Membre habitué
    Homme Profil pro
    Ingénieur Informatique
    Inscrit en
    Décembre 2005
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Informatique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 146
    Points : 158
    Points
    158
    Par défaut
    Tu as pu résoudre ton problème?
    Je sais que le post date un peu, mais je suis tombé dessus par hasard en cherchant la manière de résoudre un problème que je rencontre en ce moment quelque peu étrange.

    Pour la publication clickonce (de mémoire car cela fait un bon moment que j'ai plus mis les mains dedans), pour les arguments cela doit être précisé lors de la publication, l'interface propose des options de ce genre dans la partie avancée...

    Moi je me retrouve à avoir deux chaines de caractére qui sont chacun un arguments.... mais au final j'ai un seul argument avec la concaténation des deux chaines -_-".

    Très très bizarre... Mais je vais continuer à chercher hehehe.

  16. #16
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 170
    Points : 7 421
    Points
    7 421
    Billets dans le blog
    1
    Par défaut
    Pourquoi ne pas biaiser ClickOne (y'a pas un I en trop, je reste poli hein :o) et plutôt que de lancer MonAppli.application, ne pas lancer directement l'EXE qui se trouve dans le VirtualStore ?

    On le trouve dans des dossiers cachés de l'utilisateur en cours.

    Le truc bête c'est que le dossier à un nom à la con et risque de changer à chaque déploiement, mais si c'est pour mettre dans un *.bat on s'en cogne un peu de devoir refaire le raccourci à chaque fois non ?

Discussions similaires

  1. Lancer une application publiée en ligne de commande
    Par MadMax4 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 19/02/2013, 10h50
  2. Réponses: 0
    Dernier message: 03/02/2011, 13h54
  3. Comment lancer une appli Console vb.net en ligne de commande
    Par aiglelibre dans le forum Développement Windows
    Réponses: 2
    Dernier message: 08/10/2010, 15h29
  4. Lancer une application RCP en ligne de commande
    Par Fabien[ALT] dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 13/08/2008, 22h19
  5. Lancement d'une appli win32 en ligne de commande
    Par Invité(e) dans le forum Windows
    Réponses: 2
    Dernier message: 16/09/2005, 12h05

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