在VS 2017中的类图

190

我一直在使用VS 2015并喜欢 Class Diagram 选项。
最近升级到了2017,但好像找不到 Class Diagram 选项了。
有人知道我该怎么操作吗?


38
请前往菜单“工具”->“获取工具和功能”。选择“Visual Studio扩展开发”工作负载,然后选择“类设计器”选项。安装即可。 - Artur Karbone
10个回答

218

使用VS2017企业版:

  1. 转到快速启动栏(右上方)Ctrl + Q
  2. 输入“类设计器”,将弹出安装链接

    Quick Launch > Class Designer

  3. 点击安装、重启,然后你就可以开始了...享受吧!


9
如果您使用西班牙语版本,请输入“Diseñador de clases”。 - xav56883728
3
在 Visual Studio Community 2017 的法语版本中,输入“Concepteur de classes”。 在德语版本中,输入“Klassen Designer”(感谢 @dba)。 - LePatay
同样适用于专业版 - Nimesh Madhavan
5
对不起,我无法为您提供结果。 - Mark Lauter

152
注意到在beta版中,并以为安装有问题。添加新的类图的UI元素缺失,无法打开现有的*.cd类图文件。刚升级到2017年,发现问题仍然存在。经过一些调查发现,类设计器组件不再是默认安装的。
重新运行VS Installer并添加“类设计器”组件可以恢复我的打开和编辑类图的能力,以及创建新类图所需的UI元素。 VS Installer > Individual Components > Class Designer

2
哪些UI元素可用?这个组件在我的安装中已经被选中(VSPro 2017),但是当我重新启动VS时,没有标题为“类设计器”的菜单选项可用。---糟糕,我的错。由于可能还有其他像我一样心不在焉的人,这里是微软的逐步指南。我试图使用文件>新建>文件,但我需要做项目>添加新项。无限菜单的诅咒... - Sean Allred

34

为了获得此功能,您需要从Visual Studio 2017安装程序中安装“Visual Studio扩展开发”工作负载和“类设计器”可选组件。

请参见:Visual Studio Community 2017组件目录

但这种类型的项目并非所有项目类型都可用。请自行尝试:

  • 控制台应用程序(.NET Framework)可用;

  • 控制台应用程序(.NET Core)不可用

我找不到关于将来是否针对.NET Core项目提供此功能的更多信息。


2
ASP.NET Core 项目中不提供类图,但在 ASP.NET 项目中可用。.Net Core 项目的类图。 - Dmitry
1
GitHub/dotnet: 确保类图正常工作 - Dmitry
4
我认为微软应该让类设计器再次变得优秀。 - Tanveer Badar
实际上,它在.NET Core中是可用的,但您需要进入类(控制器、服务等)并右键单击->“添加到快速图表”。 - Dumitriu Sebastian

27

哇哦!通过某些方法,它起作用了!

根据这个评论,您需要:

  1. 手动编辑C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\VisualStudio\Managed 中的 Microsoft.CSharp.DesignTime.targets文件(对于VS Community版,修改路径以供其他版本使用),将ProjectCapability(右侧窗格)中的ClassDesigner值追加到其中:File diff

  2. 重新启动VS。

  3. 手动创建文本文件,例如MyClasses.cd,并使用以下内容: <?xml version="1.0" encoding="utf-8"?> <ClassDiagram MajorVersion="1" MinorVersion="1"> <Font Name="Segoe UI" Size="9" /> </ClassDiagram>

太好了。现在您可以在VS中打开此文件。一旦VS启动后,您将看到错误消息“对象引用未设置为对象的实例”,但是图表可以工作。

VS 2017 Community版,v15.3.0中检查了.NETCore2.0应用/项目:

enter image description here

GitHub问题预计在v15.5中修复


2
我不需要修改步骤1,只需创建一个包含此处显示的xml内容的.cd文件即可使它与dotnetcore配合使用。感谢这个技巧。 - eka808
1
我猜你的VS版本应该是15.5之后的。当前最新版本是15.7。 - Dmitry

19

以下步骤适用于我:

  • 关闭VS。
  • 运行Visual Studio Installer。
  • 在“Visual Studio Professional 2017”下点击“修改”按钮。
  • 在新窗口中,向下滚动并在“其他工具集”下选择“Visual Studio Extension Development”。
  • 然后,在右侧如果尚未选中,请单击“Class Designer”。
  • 单击“修改”以确认。

4
顺便提一下,现在可以在VS中完成这个操作了,所以不需要关闭,只需点击工具->获取工具和功能。 - Artur Karbone
1
是的,@ArturKarbone,你说得对,虽然安装程序大多数情况下会自动关闭VS。 - Umair Malhi

7

VS 2017专业版 - 前往快速启动,输入“Class...”,选择类设计器并安装。

安装完成后,前往添加新项目,搜索“类图”,即可开始使用。


4
  1. 从Windows开始菜单中打开Visual Studio Installer,或在Visual Studio的菜单栏中选择Tools > Get Tools and Features。

    Visual Studio Installer将会打开。

  2. 选择Individual components选项卡,然后向下滚动到代码工具类别。

  3. 选择Class Designer,然后选择Modify。

Visual Studio Installer Window

Class Designer组件开始安装。

更多详细信息,请访问此链接:How to: Add class diagrams to projects


4
除了@ericgol的回答之外:在Visual Studio Community 2017的法语版本中,可以在搜索栏中键入“Concepteur de classes”。

3
在德语中,“Klassen Designer”:)很有趣的是,微软在本地化搜索中无法识别自己的默认语言...... - dba
这篇帖子似乎没有提供一个高质量的答案来回答问题。 - sɐunıɔןɐqɐp
1
我的回答本意是要给ericgol的回答添加一些简单的补充,但当时由于我的声望等级限制,无法在所有地方进行评论。sɐunıɔןɐqɐp - LePatay

1

我正在使用VS 2017 Enterprise,您可以在VS的快速启动中找到一个选项来安装类图扩展。


这个问题已经在这里得到了解答:https://dev59.com/mlgQ5IYBdhLWcg3wym0Y#43227591 - sɐunıɔןɐqɐp

0
关于Dmitry在2017年的回答,我想再补充一点。我打开了
C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Community\MSBuild\Microsoft\VisualStudio\Managed\ 
Microsoft.CSharp.DesignTime.targets 

然后进入了<ProjectCapability>元素。我已经有了这个:

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

已经有了ClassDesigner,但是我仍然无法使用Dmitry提到的XML编辑方法将项目拖动到我自己制作的Diagram.cd中。

手动创建文本文件,例如MyClasses.cd,并使用以下内容:

<?xml version="1.0" encoding="utf-8"?> <ClassDiagram MajorVersion="1"
> MinorVersion="1">
>     <Font Name="Segoe UI" Size="9" /> </ClassDiagram>

但是,当我从那个元素中去掉了“ClassDesigner”后面的分号,然后重新打开Visual Studio时,哇,我就能够将类从我的Solution Explorer拖到我的Diagram.cd窗口中了。

因此,总之,在Microsoft.CSharp.DesignTime.targets中的这个元素是有效的:

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

我正在使用VS 2019,版本号为16.1.5。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接