OVH Cloud OVH Cloud

DEBUG ou RELEASE

9 réponses
Avatar
Rossi Stéphane
Bonjour ,

comment connaitre en code VB, si l'application est en mode DEBUG ou RELEASE
????

9 réponses

Avatar
Patrick Philippot
Bonjour,

Rossi Stéphane wrote:
comment connaitre en code VB, si l'application est en mode DEBUG ou
RELEASE ????



System.Diagnostics.Debugger.IsAttached

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Rossi Stéphane
Voilà mon code (une partie)

Dim toto As New System.Diagnostics.Debugger
If (toto.IsAttached()) Then
Message.Subject = "MODE DEBUG"
If (Destinataire = MAILTEST) Then
SmtpMail.Send(Message)
End If
Else
Message.Subject = "MODE RELEASE"
If (Destinataire = MAILTEST) Then
SmtpMail.Send(Message)
End If
End If

Je choisis RELEASE la premiere fois dans le gestionnaire de conf.
Là c'est OK.
La seconde fois je choisis DEBUG, je recompile ett là j'ai toujours MODE
RELEASE dans mes traces.

Y a t il des fichiers temporaires à effacer ???
Y a t il autre chose à Tester ???

"Patrick Philippot" a écrit dans le
message de news:
Bonjour,

Rossi Stéphane wrote:
> comment connaitre en code VB, si l'application est en mode DEBUG ou
> RELEASE ????

System.Diagnostics.Debugger.IsAttached

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr




Avatar
Patrick Philippot
Bonjour,

La seconde fois je choisis DEBUG, je recompile ett là j'ai toujours
MODE RELEASE dans mes traces.



Vous lancez le programme de quelle manière?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Rossi Stéphane
Je modifie le gestionnaire dans la solution pour choisir, puis je recompile
et j'ouvre le programme via IE en tapant l'url.


"Patrick Philippot" a écrit dans le
message de news:
Bonjour,

> La seconde fois je choisis DEBUG, je recompile ett là j'ai toujours
> MODE RELEASE dans mes traces.

Vous lancez le programme de quelle manière?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr




Avatar
Patrice
A mon avis, IsDebuggerAttached indique si un débogueur est attaché (donc
sans lien direct avec le fait que le build est DEBUG ou RELEASE).

Personnellement, j'utiliserai plutôt la compilation conditionnelle :

#if DEBUG Then
Msgbox "DEBUG"
#Else
MsgBox "RELEASE"
#end If

--
Patrice

"Rossi Stéphane" a écrit dans le message de
news:
Je modifie le gestionnaire dans la solution pour choisir, puis je
recompile
et j'ouvre le programme via IE en tapant l'url.


"Patrick Philippot" a écrit dans le
message de news:
Bonjour,

> La seconde fois je choisis DEBUG, je recompile ett là j'ai toujours
> MODE RELEASE dans mes traces.

Vous lancez le programme de quelle manière?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr








Avatar
Patrick Philippot
Rossi Stéphane wrote:
Je modifie le gestionnaire dans la solution pour choisir, puis je
recompile et j'ouvre le programme via IE en tapant l'url.



Dans ce cas, c'est normal. Comme son nom l'indique, la fonction retourne
vrai si un débogueur est attaché au processus (lancé via F5 dans l'IDE).
Si le programme est lancé de manière autonome, il n'y a pas de débogueur
attaché.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Rossi Stéphane
Oui tout à fait d'accord avec vous, mais mon problème est que je ne sais
toujours pas en code VB comment retrouver le mode de compilation du
gestionnaire de conf.

Que vaut la variable DEBUG ??? (System.Diagnostics.Debug ???? )

Merci pour votre aide

"Patrice" a écrit dans le message de
news:%
A mon avis, IsDebuggerAttached indique si un débogueur est attaché (donc
sans lien direct avec le fait que le build est DEBUG ou RELEASE).

Personnellement, j'utiliserai plutôt la compilation conditionnelle :

#if DEBUG Then
Msgbox "DEBUG"
#Else
MsgBox "RELEASE"
#end If

--
Patrice

"Rossi Stéphane" a écrit dans le message de
news:
> Je modifie le gestionnaire dans la solution pour choisir, puis je
> recompile
> et j'ouvre le programme via IE en tapant l'url.
>
>
> "Patrick Philippot" a écrit dans le
> message de news:
>> Bonjour,
>>
>> > La seconde fois je choisis DEBUG, je recompile ett là j'ai toujours
>> > MODE RELEASE dans mes traces.
>>
>> Vous lancez le programme de quelle manière?
>>
>> --
>> Patrick Philippot - Microsoft MVP
>> MainSoft Consulting Services
>> www.mainsoft.fr
>>
>>
>
>




Avatar
Patrice
C'est donc le code cité précédemment.

La variable DEBUG est vrai ou fausse selon que la compilation est faire en
mode DEBUG ou en mode RELEASE. Le # devant les instructions indique qu'il
s'agit d'un if qui est traité au moment de la compilation et dans l'EXE
final on aura donc l'une ou l'autre instruction.

Il est également possible de mettre des attributs sur les méthodes pour que
l'appel soit inclus dans l'exe final ou tout simplement ignoré.

Voir par exemple :
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vblr7/html/vadirif.asp

--
Patrice

"Rossi Stéphane" a écrit dans le message de
news: %
Oui tout à fait d'accord avec vous, mais mon problème est que je ne sais
toujours pas en code VB comment retrouver le mode de compilation du
gestionnaire de conf.

Que vaut la variable DEBUG ??? (System.Diagnostics.Debug ???? )

Merci pour votre aide

"Patrice" a écrit dans le message de
news:%
A mon avis, IsDebuggerAttached indique si un débogueur est attaché (donc
sans lien direct avec le fait que le build est DEBUG ou RELEASE).

Personnellement, j'utiliserai plutôt la compilation conditionnelle :

#if DEBUG Then
Msgbox "DEBUG"
#Else
MsgBox "RELEASE"
#end If

--
Patrice

"Rossi Stéphane" a écrit dans le message de
news:
> Je modifie le gestionnaire dans la solution pour choisir, puis je
> recompile
> et j'ouvre le programme via IE en tapant l'url.
>
>
> "Patrick Philippot" a écrit dans le
> message de news:
>> Bonjour,
>>
>> > La seconde fois je choisis DEBUG, je recompile ett là j'ai toujours
>> > MODE RELEASE dans mes traces.
>>
>> Vous lancez le programme de quelle manière?
>>
>> --
>> Patrick Philippot - Microsoft MVP
>> MainSoft Consulting Services
>> www.mainsoft.fr
>>
>>
>
>








Avatar
Patrick Philippot
Rossi Stéphane wrote:
Oui tout à fait d'accord avec vous, mais mon problème est que je ne
sais toujours pas en code VB comment retrouver le mode de compilation
du gestionnaire de conf.



Essayez voir ça:

Dans assemblyinfo.vb, ajoutez ça:

#If DEBUG Then
<Assembly: AssemblyConfiguration("Debug")>
#Else
<Assembly: AssemblyConfiguration("Release")>
#End If

Dans votre code:

Imports System.Reflection


Public Class AssemblyConfig

Public Shared Function GetConfiguration()
Dim assy As [Assembly] = Assembly.GetExecutingAssembly()

For Each attrib As Object In assy.GetCustomAttributes(False)
If TypeOf attrib Is AssemblyConfigurationAttribute Then
Dim config As AssemblyConfigurationAttribute = attrib
Return config.Configuration
End If
Next

Return "Config inconnue"

End Function

End Class

Selon le build, GetConfiguration retournera le nom de la configuration
que vous pourrez tester.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr