Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Savoir si on es dans l'IDE ou pas.

6 réponses
Avatar
J-L
(re)Bonjour

Pour savoir si je lance mon exe depuis l'IDE, je pensais activer DEBUG
et utiliser un #if DEBUG pour certaines actions d'affichage de
variables qui ne devraont bien sur pas apparaitre chez le client.

Mais apparemment, ça marche pas. Que je lance mon appli depuis l'IDE ou
en autonome depuis l'explorateur de fichiers, il n'y a aucune aucune
distinction de faite.

Quelle est l'astuce pour savoir si l'appli a été lancée depuis VS 2008
express ?

J-L

6 réponses

Avatar
Yanos El Guerilleros
J-L a écrit :
(re)Bonjour

Pour savoir si je lance mon exe depuis l'IDE, je pensais activer DEBUG
et utiliser un #if DEBUG pour certaines actions d'affichage de variables
qui ne devraont bien sur pas apparaitre chez le client.

Mais apparemment, ça marche pas. Que je lance mon appli depuis l'IDE ou
en autonome depuis l'explorateur de fichiers, il n'y a aucune aucune
distinction de faite.

Quelle est l'astuce pour savoir si l'appli a été lancée depuis VS 2008
express ?

J-L





Salut,

En fait on fonctionne généralement plus avec le système de "configurations".

Tu travailles avec la configuration "Debug" et quand tu veux faire une
version à livrer tu passes en mode "Release"

Dans ton cas tu active DEBUG uniquement dans la configuration "Debug".

En revanche je suis en train de me demander si dans la version express
il y a ces mécanismes de configuration de compilation

A++

Yanos
Avatar
Gilles TOURREAU [MVP]
"J-L" a écrit dans le message de
news:
(re)Bonjour

Pour savoir si je lance mon exe depuis l'IDE, je pensais activer DEBUG et
utiliser un #if DEBUG pour certaines actions d'affichage de variables qui
ne devraont bien sur pas apparaitre chez le client.

Mais apparemment, ça marche pas. Que je lance mon appli depuis l'IDE ou en
autonome depuis l'explorateur de fichiers, il n'y a aucune aucune
distinction de faite.

Quelle est l'astuce pour savoir si l'appli a été lancée depuis VS 2008
express ?

J-L






Bonjour,

Faites tout simplement un :
System.Diagnostics.Debug.WriteLine();

L'utilisation de cette méthode fonctionnera uniquement en mode Debug, en
mode Release, elle disparaitra...

Cela revient au même que de faire un #if DEBUG mais plus simple...

Cordialement

--
Gilles TOURREAU - MVP C#


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Gilles Kohl [MVP]
On Fri, 11 Apr 2008 15:21:43 +0200, J-L
wrote:

(re)Bonjour

Pour savoir si je lance mon exe depuis l'IDE, je pensais activer DEBUG
et utiliser un #if DEBUG pour certaines actions d'affichage de
variables qui ne devraont bien sur pas apparaitre chez le client.

Mais apparemment, ça marche pas. Que je lance mon appli depuis l'IDE ou
en autonome depuis l'explorateur de fichiers, il n'y a aucune aucune
distinction de faite.

Quelle est l'astuce pour savoir si l'appli a été lancée depuis VS 2008
express ?



Si je comprends bien, vous ne voulez pas différencier entre version
"Debug" et "Release", mais détecter si la version "Debug" a été lancée
depuis l'IDE ou depuis l'explorateur.

Je ne connais pas de fonctionalité directe qui permette la
différenciation, mais voici deux idées type "workaround":

- utiliser un parametre "commandline". Dans les propriétés du project,
sous "Debug", les arguments a passer au programme par l'IDE peuvent
etre définis. Passez un argument spécifique (par exemple "-IDEDEBUG"
ou similaire) et faites un test correspondant dans votre programme,
par example:

if(Environment.GetCommandLineArgs().Contains("-IDEDEBUG"))
{
MessageBox.Show("Lancé sous l'IDE");
}

- utiliser le fait que le "hosting process" est normalement utilisé
sous l'IDE - ceci est moins sur parce-que l'utilisation du hosting
process peut etre déactivée dans la configuration du project.

Le code correspondant:


if(Environment.GetCommandLineArgs()[0].EndsWith(".vshost.exe"))
{
MessageBox.Show("Lancé sous l'IDE");
}

Amicalement,
Gilles.

Regards,
Gilles [MVP].

(Please reply to the group, not via email.
Find my MVP profile with past articles / downloads here:
http://www.gilleskohl.de/mvpprofile.htm)
Avatar
J-L
>
Dans ton cas tu active DEBUG uniquement dans la configuration "Debug".

En revanche je suis en train de me demander si dans la version express il y a
ces mécanismes de configuration de compilation




Je ne vois nulle part de notions de configuration.
Je pensais qu'activer la directive DEBUG dansles propriétés du projet
pouvait suffire.
Avatar
J-L
> Faites tout simplement un :
System.Diagnostics.Debug.WriteLine();

L'utilisation de cette méthode fonctionnera uniquement en mode Debug, en mode
Release, elle disparaitra...

Cela revient au même que de faire un #if DEBUG mais plus simple...




Merci pour astuce qui me sera utile pour autere chose mais pas pour ça.

En fait, j'ai un répertoire de données que je dois "atteindre" pour que
le programme fonctionne. Et selon que je le teste depuis l'IDE ou
depuis l'explorateur de fichiers, je n'utilise pas les mêmes données.
D'où mon besoin d'écrire:
if (DanslIDE)
{ ... }
else
{ ... }
Avatar
J-L
> Si je comprends bien, vous ne voulez pas différencier entre version
"Debug" et "Release", mais détecter si la version "Debug" a été lancée
depuis l'IDE ou depuis l'explorateur.



C'est exactement ça.

- utiliser un parametre "commandline". Dans les propriétés du project,
sous "Debug", les arguments a passer au programme par l'IDE peuvent
etre définis. Passez un argument spécifique (par exemple "-IDEDEBUG"
ou similaire) et faites un test correspondant dans votre programme,
par example:

if(Environment.GetCommandLineArgs().Contains("-IDEDEBUG"))
{
MessageBox.Show("Lancé sous l'IDE");
}



C'est ce que j'ai finis par faire.


- utiliser le fait que le "hosting process" est normalement utilisé
sous l'IDE - ceci est moins sur parce-que l'utilisation du hosting
process peut etre déactivée dans la configuration du project.

Le code correspondant:


if(Environment.GetCommandLineArgs()[0].EndsWith(".vshost.exe"))
{
MessageBox.Show("Lancé sous l'IDE");
}




Fine astuce, merci ! Je n'y aurais pas pensé .