[VS2010] Configurer l'analyse de code pour toute la solution

This article is available in english.

Avec Visual Studio 2008, configurer l’analyse de code n’est pas simple. Si vous avez plus de 10 projets, cela peut prendre un bon moment pour gérer et appliquer un seul jeu de règles pour toute la solution. Il fallait donc mettre à jour tous les projets à la main, ou utiliser un outil qui éditerait les fichiers csproj pour appliquer le même jeu de règles.

Ce n’est pas vraiment plaisant à faire, ni efficace. En particulier lorsqu’il s’agit d’une centaine de projets.

Dans Visual Studio 2010, l’équipe du produit a ajouté deux choses :

  1. Les règles sont maintenant dans des fichiers externes, et ne sont plus intégrées dans le fichier de projet. Cela permet de réutiliser les règles dans les autres projets de la solution. Cool.
  2. Il y a une nouvelle section dans les propriétés de la solution, nommée “Code Analysis Settings”, qui permet d’appliquer un fichier de règles à un projet ou mieux, à tous les projets ! Très cool.

Cette option est aussi disponible via le menu “Analyze”, avec “Configure Code Analysis for Solution”.

Un petit truc à savoir cela dit : pour être capable de sélectionner tous les projets, Ctrl+A ne fonctionne pas. Il faut sélectionner le premier, puis maintenir Ctrl et sélectionner le dernier. Peut-être que l’équipe produit corrigera cela pour la version finale...

Migrer les règles depuis VS2008

Si vous migrez une solution depuis VS2008, et que vous utilisiez l’analyse de code, vous remarquerez probablement que le convertisseur de projet génère un fichier nommé “Migrated rules for MyProject.ruleset” pour chacun des projets de la solution. C’est intéressant si tous les projets n’ont pas les mêmes règles. Mais si elles sont toutes les mêmes, il faudrait toutes les gérer...

Comme tous les programmeurs, je suis paresseux, et j’ai écrit une petite macro qui enlève tous les fichiers “ruleset” générés pour la solution courante. Ma solution n’utilise alors plus qu’un seul jeu de règles.

Ce n'est pas une macro très efficace, mais puisqu'elle ne va pas être beaucoup utilisée... Vous arriverez certainement à vivre avec performance médiocre et un mauvais code VB.NET :)

La voici :

Sub RemoveAllRuleset()

    For Each project As Project In DTE.Solution.Projects

        FindRuleSets(project)

    Next

End Sub

Sub FindRuleSets(ByVal project As Project)

    For Each item As ProjectItem In project.ProjectItems

        If Not item.SubProject Is Nothing Then

            If Not item.SubProject.ProjectItems Is Nothing Then

                FindRuleSets(item.SubProject)

            End If

        End If

        If Not item.SubProject Is Nothing Then

            If Not item.SubProject.ProjectItems Is Nothing Then

                Dim ruleSets As List(Of ProjectItem) = New List(Of ProjectItem)

                For Each subItem In item.SubProject.ProjectItems

                    If subItem.Name.StartsWith("Migrated rules for ") Then

                        ruleSets.Add(subItem)

                    End If

                Next

                For Each ruleset In ruleSets

                    ruleset.Remove()

                Next

            End If

        End If

    Next

End Sub


Publié samedi 6 mars 2010 19:23 par jay
Classé sous ,
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires


Les 10 derniers blogs postés

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01

- SharePoint Online: Script PowerShell pour supprimer une colonne dans tous les sites d’une collection par Blog Technique de Romelard Fabrice le 11-27-2018, 18:01