Archives par étiquette : vb sucks

quote

Une chaine doit être terminée avec des guillemets

String constants must end with a double quote

 

Jusque là rien de nouveau, excepté que j’ai rencontré cette erreur de compilation lors du test de la build que j’ai mis en place récemment sur notre nouveau serveur… de build.

Bien évidemment ce fut une surprise totale car je me suis basé pour cela sur un sln existant qui lui compile parfaitement.

Après un rapide saut vers les deux fichiers incriminés, je reste circonspect en lisant les lignes suivantes :

 Sub Main()         

 

 Dim chaine As String
 chaine = "Test"
 Select Case chaine

 

        Case "Valeur 1
           Console.WriteLine("It works")

 

        Case "Valeur 2
           Console.WriteLine("It works")

 

    End Select
 End Sub

 

Comme vous pouvez le constater les chaines ne sont pas délimitées avec une quote fermante. J’ai donc rapidement pensé à un problème d’encodage peut être du à la récente migration de TFS 2005 vers TFS 2010. Et bien non, le code montré ci-dessus compile parfaitement !

Le compilateur de Visual Basic valide sans aucun problème ce type de code, très certainement pour des raisons historiques. Surprenant non ?

Note 1 : Non je n’ai pas réussi à trouver la raison historique pour laquelle cela est possible.

Note 2 : Oui le compilateur présent sur le serveur de build réagit différemment que celui présent sur le poste de dév alors que je devrais à priori avoir la même version (Team Build SP1 sur le serveur, et VS 2010 SP1 sur les postes de dév). Je suppute que cette différence de comportement doit être lié au paramétrage de MS Build.

[Update] Merci à Sébastien qui a réussi à trouver la raison historique pour laquelle une chaine peut ne pas être terminée par une double quote en VB !

04-04-2011 14-16-37

Corriger le problème de génération de documentation en VB

Durant la mise en place d’un serveur de build, et après avoir rencontré moultes problèmes, je me suis confronté à un bug de VB plutôt ennuyeux.

Alors que je configurais la version release de chaque projet de la solution que je souhaitais compiler via un daily build, je me suis rendu compte qu’il n’était pas possible en VB de désactiver la génération de la documentation XML en Release sans que cela impacte la version Debug !

SNAGHTML28640326

La solution pour contourner ce problème est de tout simplement modifier vos vbproj via un éditeur de texte afin de spécifier le comportement souhaité. La case à cocher sera alors grisée par Visual Studio.

Si vous jugez que ce bug est ennuyeux, vous pouvez voter pour la soumission que j’ai faite sur Connect.