Hy @ all.
Habe da ma ne Frage, hoffe ihr könnt mir helfen und ich hoffe ich bin hier richtig, wenn nicht Thema bitte verschieben?!
Ich bin gerade dabei ein Analysetool zu schreiben, welches den StyleCop nutzen soll, d.h. ich gebe eine Ordner an (in meinem Fall erstmal einen „Testordner“) der zwei .cs Dateien enthält, dann klicke ich auf den Startbutton und diese zwei Dateien sollen dann geprüft werden mit dem StyleCop. Es gibt unter dem folgenden Link
code.msdn.microsoft....s&ReleaseId=1425 (StyleCop 4.3 SDK: "Integration StyleCOp into Build Environments" -> "Hosting StyleCop in a Custom Environment" -> Creating a Custom StylCopWrapper") eine „kleine Hilfestellung“ dafür.
Leider komme ich mit dem OnOutpurGenerated und OnVilationEncountered nicht so recht klar.
Hier erstmal ein Teil meines Codes, habe es hauptsächlich aus der obigen Hilfe genommen:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| { string file = @"c:\Dokumente und Einstellungen\Desktop\Testordner";
StyleCopConsole console = new StyleCopConsole(null, true, null, null, true); Configuration configuration = new Configuration(new string[] {"DEBUG"}); CodeProject project = new CodeProject(0, file, configuration); DirectoryInfo info = new DirectoryInfo(file);
foreach (FileInfo sourceFilePath in info.GetFiles("*.cs", SearchOption.TopDirectoryOnly)) { console.Core.Environment.AddSourceCode(project, sourceFilePath.FullName, null); }
List<CodeProject> projects = new List<CodeProject>(); projects.Add(project);
console.OutputGenerated += OnOutputGenerated; console.ViolationEncountered += OnViolationEncountered;
console.Start(projects, false);
console.OutputGenerated -= OnOutputGenerated; console.ViolationEncountered -= OnViolationEncountered;
console.Dispose(); }
private void OnOutputGenerated(object sender, OutputEventArgs e) { _styleCopTextBox.Text = e.Output; }
private void OnViolationEncountered(object sender, ViolationEventArgs e) { _styleCopTextBox.Text = e.Violation.Rule.Name; } |
Wenn ich das ganze in einer Console (Projekt: Console Application) ausgeben lasse (natürlich dann nicht TextBox, sondern Console.WriteLine...), dann zeigt er mir die Regeln an, die falsch gemacht worden sind und zählt auch wieviele verstoßen wurden. In meiner Windows Form Application jedoch will ich es in einer TextBox ausgeben lassen und da sagt er immer nur „No violation encountered“ obwohl es die gleichen Dateien sind!!?
Was ist hier falsch? Sicherlich muss ich auch noch ne Schleife hinzufügen, damit alle Regeln in der textBox ausgegeben werden usw.? Über Tipps und Hilfe freue ich mich sehr.
Danke für eure Hilfe.