系统关系图疑难解答

更新:2007 年 11 月

使用系统设计器时,某些操作会影响系统关系图以及其他分布式系统关系图。本主题描述了执行这些操作时产生的某些情况及其对关联项的影响,以及解决这些问题时所能执行的步骤。下面的列表描述了系统关系图中可能出现的警报状态,以及其他可能需要解决的问题:

  • Alert States on System Diagrams

  • Opening, Closing, and Removing System Diagrams

  • Modifying System Diagrams While Code is Running

系统关系图上的警报状态

下表描述了可能会显示在系统关系图上的警报状态。

警报状态

可能的原因

成员的红色虚线轮廓

  • 在该成员的系统关系图保持关闭状态时,对该成员的定义进行了重命名或删除,或者该定义变为缺少。

  • 在某个成员的系统关系图保持关闭状态时,更改了该成员定义的“区域性”、“版本”或“文档名”属性。

  • 对于作为应用程序的成员,与该应用程序定义关联的项目缺少或者已从解决方案中移除或卸载。

例如,应用程序系统的成员以及这些成员的定义按名称进行链接。当您重命名已关闭系统关系图上某个应用程序系统成员的定义时,Visual Studio 不会更新该成员。此操作会断开该定义与它在已关闭系统关系图上作为应用程序系统成员的使用之间的链接。

当您重新打开这些系统关系图时,链接断开的成员(又称作“孤立成员”)会显示红色虚线轮廓。如果对孤立成员的定义进行了重命名,则该成员上将显示以前的定义名称。否则,该成员上将显示当前的定义名称。在任一情况下,定义名称下面都将显示一条波浪线。

下表汇总了可能会导致此警报状态出现的情况。

操作

解决办法

在某个成员的系统关系图保持关闭状态时,重命名该成员的定义。

通过选择要与孤立成员关联的已重命名定义来修复该成员。有关更多信息,请参见如何:修复应用程序系统的孤立成员

如果不希望选择某个定义,则可以将该定义临时还原到其以前的名称,然后在系统关系图保持打开状态时重命名该定义。有关更多信息,请参见如何:从系统关系图查看应用程序和系统定义如何:在应用程序关系图中重命名应用程序

在某个成员的系统关系图保持关闭状态时,删除该成员的定义。

通过选择要与孤立成员关联的另一个定义来修复该成员。有关更多信息,请参见如何:修复应用程序系统的孤立成员

如果不想修复某个孤立成员,则可以将该成员从包含它的系统关系图中删除。有关更多信息,请参见如何:删除应用程序系统中的成员

缺少成员的定义。

在解决方案中添加缺少的定义。

说明:

例如,缺少的应用程序定义可能包括缺少的应用程序定义 (.sdm) 文件,如外部 Web 服务、数据库和泛型应用程序。缺少系统定义就是缺少系统关系图文件 (.sd)。

例如,如果缺少定义的是系统,请将系统关系图添加回到解决方案中。有关更多信息,请参见如何:向解决方案添加系统关系图

如果没有找到缺少的定义,则可以执行下列任务之一:

在某个成员的系统关系图保持关闭状态时,更改该成员的定义的“区域性”、“版本”或“文档名”属性。

通过选择要与孤立成员关联的已更新定义来修复该成员。有关更多信息,请参见如何:修复应用程序系统的孤立成员

如果不希望选择某个定义,则可以将该定义的属性临时还原到其以前的值,然后在系统关系图保持打开状态时更新该定义。有关更多信息,请参见如何:从系统关系图查看应用程序和系统定义如何:在应用程序关系图中重命名应用程序

从解决方案中移除或卸载与已实现的应用程序定义相对应的项目。

将项目添加回解决方案或重新加载项目。

有关更多信息,请参见下列主题:

与已实现的应用程序定义相对应的项目不再可用,且在解决方案中显示为已卸载。

从解决方案中移除已卸载的项目,并为系统关系图上的孤立成员选择另一个定义。在修复孤立成员之后,从应用程序关系图中删除孤立定义。

有关更多信息,请参见如何:修复应用程序系统的孤立成员

从另一个解决方案添加系统关系图。

对于所缺少的未实现的应用程序定义,向应用程序关系图中添加同一类型的新应用程序。还可以通过选择要与孤立成员关联的另一个定义来修复该成员。有关更多信息,请参见如何:修复应用程序系统的孤立成员

对于所缺少的已实现的应用程序定义,向解决方案中添加与该定义相对应的项目。有关更多信息,请参见 如何:在现有解决方案中对项目进行反向工程处理。例如,可以在其他解决方案中实现这些应用程序,然后将这些应用程序的项目添加到当前的解决方案中。有关更多信息,请参见如何:实现应用程序关系图上的应用程序

对于缺少的系统定义,请将该定义的系统关系图添加到当前的解决方案中。有关更多信息,请参见如何:向解决方案添加系统关系图

在不同解决方案或不同 Visual Studio 实例中的系统关系图之间复制成员。

如果缺少应用程序定义,请将相关定义复制到当前解决方案中的应用程序关系图。如果已实现应用程序定义,请添加该应用程序的项目。有关更多信息,请参见 如何:在现有解决方案中对项目进行反向工程处理

如果缺少系统(成员)定义,请将定义该系统的系统关系图添加到当前的解决方案中。有关更多信息,请参见如何:向解决方案添加系统关系图

打开、关闭和移除系统关系图

打开、关闭或移除解决方案中的系统关系图时,将会对该解决方案中的其他关系图产生下列影响:

  • 打开系统关系图时,将会打开应用程序关系图,以及由打开的系统关系图引用的任何其他系统关系图。

  • 关闭系统关系图时,需要保存并关闭引用该系统关系图的任何系统关系图和部署关系图。

    提示:

    若要关闭系统关系图但不保存它,请先关闭任何相关的系统关系图或部署关系图。

  • 从解决方案中移除系统关系图之前,必须关闭解决方案中打开的所有其他关系图。

在代码运行时修改系统关系图

当代码运行时添加新的系统关系图并对该关系图执行操作(如添加应用程序定义的使用)会导致 Visual Studio 停止响应。

提示:

若要避免发生这种情况,请在对关系图执行操作前停止代码执行。

请参见

其他资源

在系统关系图上设计应用程序系统