7

Gemäß this feature matrix enthält Visual Studio 2010 Premium (RC) "statische Codeanalyse".Beinhaltet Visual Studio 2010 Premium die Vertragstools?

Das Hinzufügen von Aufrufen zu Contract.Requires zu Beginn meiner Methoden scheint jedoch keinen Effekt zu haben. Ich bekomme Laufzeitausnahmen nicht, wenn der Vertrag verletzt wird. Ich erhalte keine Compiler-Warnungen, wenn ein Vertrag nicht nachgewiesen werden kann. Ich finde auch keine "Code Contracts" Registerkarte in den Projekteinstellungen.

Fehle ich etwas offensichtlich oder ist diese Funktion nur in der Ultimate Edition verfügbar?

Antwort

3

Es scheint in der Tat einige Verwirrung darüber, ob Code Contracts in das Framework, das mit Beta 2 von VS2010 kommt, oder sogar in VS2010 selbst enthalten ist. Die Code Contracts forum (und vor allem this Post) hat mehrere Erwähnungen von diesem mit noch keine Antworten.


Ich glaube nicht, dass Code Contracts unter der Überschrift der statischen Code-Analyse fällt. Ich denke, statische Code-Analyse bezieht sich auf andere Code-Analyse-Tools wie FxCop.

Ich habe versucht mit Contract.Requires in VS2010 Beta 2 ultimative Ausgabe, aber ich bekomme das gleiche Verhalten wie Sie. Wenn Sie in den Projekteigenschaften auf der Registerkarte Codeanalyse nachsehen, können Sie die Codeanalyse aktivieren, dies bezieht sich jedoch nicht auf Code-Verträge.

Nach dem Kommentar von Melitta (von der Base Class Libraries Team) auf dem Verbindungs ​​Artikel Make data contract static checking available in Professional Edition:

... aber die Beschränkung des statischen Analysetool steht für diese bevorstehende Veröffentlichung. Es hält die Codeanalysestory konsistent, da die statischen Analysewerkzeuge VSTS erfordern.

Dies deutet darauf hin, dass Sie die Teamsystemversion benötigen (müssen), um die Kompilierungsversion von Code Contracts zu erhalten.

+0

Gibt es in vs2010 noch eine "Team Edition"? Die Feature-Matrix zeigt es nicht an. –

+1

Ich denke, die Team-System-Versionen werden in die Ultimate-Version von 2010 (http://www.microsoft.com/visualstudio/en-gb/products/msdn/default.mspx#roadmap) – adrianbanks

1

Sie müssen die Laufzeitprüfung der Codeverträge in den Projekteigenschaften aktivieren. Wenn dieser Einstellungsbereich nicht vorhanden ist, müssen Sie den Code Contracts-Download von Microsoft installieren (trotz der Tatsache, dass der Contract.Requires im Framework vorhanden ist).

In den Professional-Editionen ist nur die Laufzeitprüfung verfügbar.

3

Um statische Analysen in Beta 2 zu erhalten, müssen Sie die Code Contracts-Bits (1.2.21023.14 oder höher) von MSDN DevLabs herunterladen und installieren. Dann gibt es nun unter den Projekteigenschaften eine Registerkarte "Code Contracts" ... von hier aus können Sie die statische Analyse aktivieren ...

Das Verhalten, das Sie sehen, liegt daran, dass die Code Contracts API in mscorlib Assembly ist erlaubt behauptet zu arbeiten, aber sonst nichts.

Ich gehe davon aus, dass dies von RTM nicht notwendig sein wird.

+0

Leider sieht dies aus wie es immer noch nicht ist Arbeiten in RTM. MS hat diesen verpfuscht. Sie können Contracts.Requires eingeben, aber die Magie passiert nicht wirklich, bis Sie die CodeContracts-Tools herunterladen. –

Verwandte Themen