2017-07-14 20 views
6

Tôi có một dự án thư viện lớp C# trong Visual Studio 2017 mà tôi muốn tạo một sơ đồ lớp cho. Trình thiết kế lớp được cài đặt. Nhìn vào menu ngữ cảnh cho không gian tên hoặc bất kỳ lớp nào trong Chế độ xem Lớp, tôi thấy tùy chọn "Xem Lớp Sơ đồ" và cũng có nút cho cùng trên thanh trình đơn của chế độ xem.Làm thế nào để tạo một sơ đồ lớp cho thư viện lớp trong VS2017?

Tuy nhiên, khi tôi nhấp vào nút hoặc mục menu ngữ cảnh, dường như không có gì xảy ra! Quay trở lại giao diện Solution Explorer tôi có thể thấy một tập tin ClassDiagram1.cd đã được thêm vào dự án. Cố gắng mở tệp này mặc dù dẫn đến thông báo lỗi:

Sơ đồ lớp không được loại dự án này hỗ trợ.

Thêm tệp sơ đồ lớp vào dự án C#, VB hoặc C++ và thử mở lại.

Tôi rất vui khi có thể tự thêm sơ đồ thay vì tạo sơ đồ nếu không thể tạo. Nhưng tôi cũng không thể thêm tệp sơ đồ lớp trống vào dự án vì loại tệp đó không xuất hiện trong danh sách loại tệp trong biểu mẫu Thêm mục mới.

Làm cách nào để tạo sơ đồ lớp cho các lớp có trong thư viện lớp? Hoặc có thể các sơ đồ lớp không có sẵn cho các thư viện? Nếu trường hợp sau là trường hợp có bất kỳ thông tin nào từ Microsoft đến A), hãy xác nhận điều này và B) giải thích lý do tại sao các lớp trong chương trình có thể được lập biểu đồ chứ không phải các lớp trong thư viện. (Tôi đã dành chút thời gian để giải quyết vấn đề này nhưng không tìm thấy bất kỳ điều gì cụ thể cho thư viện lớp học)

+0

"Xem sơ đồ lớp học" có vẻ hoạt động chính xác với tôi trong một dự án thư viện lớp C# .Net Framework hoàn toàn mới. Dự án của bạn có cái gì đó khác, như thư viện lớp chuẩn .Net hay PCL? – svick

+0

@svick Rất tiếc, thực sự nó là .NetStandard 1.4, điều này ảnh hưởng đến nó? – Toby

Trả lời

5

Vì đây là liên kết Google # 1 cho các vấn đề với Nhà thiết kế lớp và đáng ngạc nhiên không ai quan tâm đến câu trả lời cho đến nay (đặc biệt là phần "Sơ đồ lớp không được loại dự án này hỗ trợ"), hãy để tôi kêu gọi:

Đóng VS và mở file ở

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

Tìm kiếm dòng

<ProjectCapability Include="CSharp;Managed"/> 

Write "ClassDesigner" như một khả năng như thế này:

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

Lưu tệp và mở lại VS. Sơ đồ lớp của bạn sẽ hoạt động ngay bây giờ. Bạn thậm chí có thể thêm những cái mới (ít nhất tôi có thể trong dự án thư viện lớp chuẩn NET 2.0 của tôi trong VS2017.5.3).

+0

FYI trong trường hợp ai đó quan tâm, giải pháp này là (tôi đoán) từ sự cố đã đóng tại https://github.com/dotnet/project-system/issues/256.Đây là một vấn đề mà tôi nhân đôi với một trong những tôi đã đề cập mở trong bình luận về câu trả lời của svick. – Toby

1

Theo tôi có thể, Sơ đồ lớp hiện không được hỗ trợ trong các dự án .Net Standard và .Net Core (chúng chia sẻ cùng loại dự án) trong VS 2017. There are several threads about this on Developer Community, hiện không nhận được nhiều phản hồi từ Microsoft.

Bạn có thể muốn xem xét tạo sự cố về điều này trên the dotnet/standard repo.

+0

Drat. Ah, quay lại StarUML. Cảm ơn (FYI, đã nêu ra một vấn đề ở đây: https://github.com/dotnet/standard/issues/426) – Toby

Các vấn đề liên quan