2009-05-18 11 views
1

Je travaille dans l'environnement VisualStudio 2008 et développe une application de ligne de commande en C# .Net. L'application s'attend à ce qu'un chemin soit transmis à partir de l'argument de ligne de commande. Je passe ces arguments à mon application en définissant les "arguments de ligne de commande" dans l'option de débogage du paramètre de projet. L'argument est fourni I -> "D: \ Test \ C & ID \ data Test \ a.dbf"Problème d'analyse des arguments de la ligne de commande contenant le caractère '&' en C# .Net

class Program 
{ 
    static int Main(string[] args) 
    { 
     Console.WriteLine(args[0]); 
     return 0; 
    } 
} 

Il fonctionne très bien si je lance le programme en utilisant la touche F5. Le problème est quand j'utilise ctrl + F5. Le args[0] contient

D:\Test\C^&ID\Test data\a.dbf

au lieu de

D:\Test\C&ID\Test data\a.dbf.

Je ne suis pas en mesure de comprendre cela, comment se fait-il que '&' est précédé d'un symbole '^'. En outre, ma validation de chemin échoue à cause de cela. Quelqu'un peut-il m'expliquer cela? (S'il vous plaît noter que les arguments fournis sont entre guillemets et une partie de celui-ci contient '&' personnage) Et je pense avec cela, j'ai expliqué mon problème :-)

+0

l'a arrangé pour vous, j'espère que c'est ce que vous voulez dire. –

+0

Salut Stefan, C'est un problème differnt ce que j'ai demandé plus tôt (http://stackoverflow.com/questions/792798/unable-to-fetch-command-line-arguments-properly-in-c). Vous avez dit "réparé pour vous" mais où? –

+0

Avez-vous essayé d'exécuter votre application directement à partir de la ligne de commande? Cela pourrait être un bug dans l'EDI. –

Répondre

1

Juste vérifier - vous savez qu'il y a un différent ensemble d'arguments de ligne de commande par configuration, non? Par conséquent, les arguments de ligne de commande dans la configuration de débogage (F5) peuvent être différents des arguments de la version de configuration (ctrl + F5).

+0

Merci pour la réponse Pouvez-vous s'il vous plaît élaborer plus cela. En passant, j'ai vérifié avec les deux ensembles que vous avez mentionnés - déboguer et libérer. –

Questions connexes