2016-06-01 1 views
3

Je vais développer quelques règles avec l'analyseur de code Roslyn. Cette règle est de contrôler l'accès d'un espace de noms. Exemple, le DAL ne peut utiliser que le cœur. Si la vue utilise le DAL, je veux un avertissement. J'utilise le modèle «Analyseur avec correctif de code (NuGet + VSIX)» dans «Visual Studio 2015 Community Edition» pour générer le plugin. J'ai fait un test et ça marche bien. Cependant, la règle est écrite en dur dans le code. Je ne sais pas comment configurer la règle dans le runtime. Le meilleur sera un fichier de configuration dans la solution ou le projet..NET Roslyn: configuration d'exécution

Pouvez-vous me donner un exemple?

Merci.

Reprise de la solution:

  1. Ajoutez le fichier dans Visual Studio dans le projet analysé.
  2. Ouvrez le fichier .csproj avec un éditeur pour modifier le groupe d'éléments du fichier de configuration.

    <None Include="test.txt" /> -> <AdditionalFiles Include="test.txt" />

Example to read the file!

+0

Semble être une surcharge, seulement pour empêcher les collègues de briser une conception d'application. Au lieu de séparer View et DataAccessLayer dans différents projets – Fabio

+1

Il est également trop difficile de séparer un petit projet dans quelques projets. Mon besoin est limité l'interaction entre le module dans le petit projet. NDepend peut vérifier cela, mais pas quand j'écris mon code. – Orwel

+0

Avoir des fichiers de code séparés pour chaque classe ou séparer la méthode des 100 lignes dans de petites méthodes qui ne font qu'une chose, est-ce une surdétermination dans le cas où vous avez seulement deux classes et deux méthodes? Ajout d'un nouveau projet dans la solution est un processus très bon marché en comparaison avec le temps que vous passez sur cette question. Basé seulement sur l'information, que vous avez la couche de DataAccess, la couche de vue et la couche principale je pense que le projet est assez grand pour séparer des couches aux projets différents même chaque couche a un seul fichier de code. – Fabio

Répondre

4

Vous pouvez ajouter la configuration d'exécution de l'analyseur via AdditionalFiles dans le .csproj. Ils sont développés en /additionalfile:<path> options de ligne de commande pour le compilateur. Dans VS "15" aperçu, vous pouvez le faire à partir de l'interface utilisateur:

enter image description here

La définition de cette ajoute ce qui suit à votre .csproj:

<ItemGroup> 
    <AdditionalFiles Include="test.txt" /> 
</ItemGroup> 

Votre analyseur peut y accède via AnalyzerOptions.AdditionalFiles, disponible en CompilationStartAnalysisContext.Options.

+0

Ça sonne bien, mais quand j'ajoute l'étiquette, le projet ne peut pas être ouvert. Pouvez-vous ajouter un exemple de .csproj (ou juste la balise 'AdditionalFileImtes')? – Orwel

+0

@ VernouCédric voir l'image – m0sa

+0

Y at-il une option ajouter une interface utilisateur qui permet de configurer l'analyseur? – cezarypiatek