2017-07-14 2 views
6

Ich habe ein C# -Klassenbibliotheksprojekt in Visual Studio 2017, für das ich ein Klassendiagramm erstellen möchte. Der Klassendesigner ist installiert. Wenn ich das Kontextmenü für den Namespace oder eine der Klassen in der Klassenansicht betrachte, sehe ich die Option "Klassendiagramm anzeigen" und auch die Schaltfläche für dieselbe in der Menüleiste der Ansicht.Wie erstellt man ein Klassendiagramm für die Klassenbibliothek in VS2017?

Wenn ich jedoch entweder auf die Schaltfläche oder den Kontextmenüeintrag klicke, scheint nichts zu passieren! Zurück in die Solution Explorer-Ansicht Ich kann sehen, dass eine ClassDiagram1.cd Datei zum Projekt hinzugefügt wurde. Der Versuch, diese Datei zu öffnen, führt jedoch zu einer Fehlermeldung:

Klassendiagramme werden von diesem Projekttyp nicht unterstützt.

Fügen Sie die Klassendiagrammdatei zu einem C# -, VB- oder C++ - Projekt hinzu und versuchen Sie es erneut.

Ich wäre glücklich genug, ein Diagramm selbst hinzufügen zu können, anstatt es generiert zu haben, wenn eine Generierung nicht möglich ist. Aber ich kann dem Projekt auch keine leere Klassendiagrammdatei hinzufügen, da dieser Dateityp nicht in der Liste Dateitypen im Formular Neues Element hinzufügen angezeigt wird.

Wie kann ich ein Klassendiagramm für Klassen erstellen, die in einer Klassenbibliothek enthalten sind? Oder sind Klassendiagramme für Bibliotheken nicht verfügbar? Wenn Letzteres der Fall ist, gibt es irgendwelche Informationen von Microsoft, um A) dies zu bestätigen und B) zu erklären, warum Klassen in einem Programm dargestellt werden können, aber keine Klassen in einer Bibliothek. (Ich habe schon einige Zeit damit verbracht, diese Angelegenheit zu googeln, aber habe nichts gefunden, was Klassenbibliotheken betrifft)

+0

"View Class Diagram" scheint mir in einem brandneuen Klassenbibliotheksprojekt C# .Net Framework korrekt zu funktionieren. Ist Ihr Projekt etwas anderes, wie eine .Net-Standard-Klassenbibliothek oder PCL? – svick

+0

@svick Whoops, in der Tat ist es. NetStandard 1.4, betrifft dies? – Toby

Antwort

5

Da dies der # 1 Link für Probleme mit dem Class Designer Google ist und überraschend gepflegt niemand so weit zu beantworten (vor allem den Teil „Klassendiagramme werden von diesem Projekttyp unterstützt“), lassen Sie mich läute:

Schließen VS und öffnen Sie die Datei auf

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\VisualStudio\Managed\Microsoft.CSharp.DesignTime.targets 

Suchen Sie die Zeile

<ProjectCapability Include="CSharp;Managed"/> 

Write "ClassDesigner" als Fähigkeit wie folgt aus:

<ProjectCapability Include="CSharp;Managed;ClassDesigner"/> 

Speichern Sie die Datei und öffnen Sie VS erneut. Ihr Klassendiagramm sollte jetzt funktionieren. Sie sollten sogar neue hinzufügen können (zumindest kann ich in meinem .NET Standard 2.0 Klassenbibliothek Projekt in VS2017.5.3).

+0

FYI falls jemand interessiert ist, ist diese Lösung (ich vermute) aus dem jetzt geschlossenen Problem bei https://github.com/dotnet/project-system/issues/256.Dies ist ein Problem, das ich mit dem, den ich erwähnt habe, im Kommentar zu svicks Antwort veröffentliche. – Toby

1

Soweit ich das beurteilen kann, werden Klassen - Diagramme derzeit nicht von .Net Standard - und .Net Core - Projekten unterstützt gleicher Projekttyp) in VS 2017. There are several threads about this on Developer Community, die bisher keine Antwort von Microsoft erhalten hat.

Sie könnten darüber nachdenken, ein Problem zu diesem Thema auf the dotnet/standard repo zu erstellen.

+0

Drat. Ach ja, zurück zu StarUML. Danke (FYI, ein Problem hier angesprochen: https://github.com/dotnet/standard/issues/426) – Toby

Verwandte Themen