Visual Studio 2017にクラス図を作成するC#クラスライブラリプロジェクトがあります。クラスデザイナがインストールされます。クラスビューの名前空間またはクラスのコンテキストメニューを見ると、[クラス図の表示]オプションと、ビューのメニューバーに同じボタンが表示されます。
ただし、ボタンまたはコンテキストメニュー項目のいずれかをクリックしても、何も起こらないようです。ソリューションエクスプローラービューに戻ると、ClassDiagram1.cd
ファイルがプロジェクトに追加されていることがわかります。ただし、このファイルを開こうとすると、エラーメッセージが表示されます。
クラス図は、このプロジェクトタイプではサポートされていません。
クラス図ファイルをC#、VB、またはC++プロジェクトに追加して、もう一度開いてみてください。
生成できない場合は、図を生成するのではなく、自分で図を追加できると嬉しいです。ただし、空のクラス図ファイルをプロジェクトに追加することもできません。そのファイルタイプは、[新しいアイテムの追加]フォームのファイルタイプリストに表示されないためです。
クラスライブラリに含まれるクラスのクラス図を作成するにはどうすればよいですか?あるいは、クラス図はライブラリで利用できないのでしょうか?後者の場合、MicrosoftからA)これを確認し、B)プログラム内のクラスを図式化できるが、ライブラリ内のクラスは図式化できない理由を説明する情報があります。 (私はすでにこの問題をグーグルで調べていましたが、クラスライブラリに固有のものは見つかりませんでした)
これはクラスデザイナの問題に対するGoogleの#1リンクであり、驚くべきことにこれまで誰も答えることを気にしませんでした(特に「クラス図はこのプロジェクトタイプではサポートされていません」の部分)。
VSを閉じて、次の場所でファイルを開きます。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\VisualStudio\Managed\Microsoft.CSharp.DesignTime.targets
行を検索する
<ProjectCapability Include="CSharp;Managed"/>
「ClassDesigner」を次のような機能として記述します。
<ProjectCapability Include="CSharp;Managed;ClassDesigner"/>
ファイルを保存して、VSを再度開きます。これでクラス図が機能するはずです。新しいものを追加することもできるはずです(少なくとも、VS2017.5.3の.NET標準2.0クラスライブラリプロジェクトでは追加できます)。
実際、正解は、Microsoftのドキュメントで説明されているようにVisualStudioインストーラーを使用することです。そしてそれはうまくいきます!
私の知る限り、クラス図は現在、VS2017の.NetStandardプロジェクトと.NetCoreプロジェクト(同じプロジェクトタイプを共有)ではサポートされていません。 開発者コミュニティにはこれに関するスレッドがいくつかあります 、これまでのところMicrosoftからの応答はあまりありませんでした。
dotnet/standard repo でこれに関する問題を作成することを検討することをお勧めします。