如何在 VS2017 中为 class 库创建 class 图?

How to create a class diagram for class library in VS2017?

我在 Visual Studio 2017 年有一个 C# class 库项目,我想为其创建一个 class 图。 Class Designer 已安装。查看命名空间的上下文菜单或 Class 视图中的任何 classes,我看到“View Class Diagram”选项以及视图菜单栏上的相同按钮.

但是,当我单击按钮或上下文菜单项时,似乎没有任何反应!返回解决方案资源管理器视图,我可以看到一个 ClassDiagram1.cd 文件已添加到项目中。尝试打开此文件会导致错误消息:

Class diagrams are not supported by this project type.

Add the class diagram file to a C#, VB or C++ project and try opening it again.

我很高兴能够自己添加图表,而不是在无法生成图表的情况下生成图表。但我也无法向项目添加空白 class 图文件,因为该文件类型未出现在“添加新项”表单的文件类型列表中。

如何为 class 库中包含的 class 元素创建 class 图表?或者 class 图表不适用于图书馆?如果是后者,Microsoft 是否提供任何信息来 A) 确认这一点和 B) 解释为什么程序中的 classes 可以用图表表示,但库中的 classes 不能用图表表示。 (我确实已经花了一些时间在谷歌上搜索这个问题,但没有找到任何特定于 class 图书馆的东西)

据我所知,Class VS 2017 中的 .Net Standard 和 .Net Core 项目(它们共享相同的项目类型)目前不支持图表。There are several threads about this on Developer Community,其中到目前为止还没有收到微软的太多回应。

您可能需要考虑在 the dotnet/standard repo 上创建一个关于此的问题。

因为这是 Google #1 link 关于 Class 设计师的问题,令人惊讶的是到目前为止没有人愿意回答(尤其是 "Class diagrams are not supported by this project type" 部分),让我插话:

关闭 VS 并打开文件

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

搜索行

<ProjectCapability Include="CSharp;Managed"/>

将"ClassDesigner"写成这样的能力:

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

保存文件并重新打开VS。您的 class 图现在应该可以工作了。您甚至应该能够添加新的(至少我可以在我的 .NET Standard 2.0 Class VS2017.5.3 中的库项目中添加)。

实际上,正确的答案是使用 Visual Studio 安装程序,如 Microsoft 文档中所述。并且有效!

how-to-add-class-diagrams-to-projects