Mon application winforms (not clickonce) prend des arguments de ligne de commande qui ne doivent être traités qu'une seule fois. L'application utilise Application.Restart()
pour se redémarrer après des modifications spécifiques à sa configuration.Modifier les arguments de ligne de commande avant Application.Restart()
Selon MSDN on Application.Restart()
Si votre application a été initialement fourni des options de ligne de commande lors de son exécution, le redémarrage de lancer l'application à nouveau avec les mêmes options.
Ce qui provoque le traitement des arguments de ligne de commande plusieurs fois.
Existe-t-il un moyen de modifier les arguments de ligne de commande (stockés) avant d'appeler Application.Restart()
?
Je ne suis pas expert en la matière, mais qu'en est-il du lancement de l'application sans le 'Application.Restart()'? Essayez d'utiliser quelque chose comme 'System.Diagnostics.Process.Start (" yourapp.exe ");', et après le démarrage, vous venez de tuer votre processus en cours (celui qui a pris des arguments). – Alisson
Sûrement en suivant le fonctionnement de 'Application.Restart', c'est plus fiable. Il appelle d'abord la méthode statique' ExitInternal' de la classe 'Application' et commence le processus. –
@RezaAghaei C'est une distinction importante pour les applications qui, comme la mienne, utilisent des ressources qui ne peuvent pas se chevaucher entre les deux processus et doivent être entièrement éliminées en premier. – khargoosh