源代码管理下的系统定义模型 (SDM) 文档

更新:2007 年 11 月

在分布式系统设计器中,分布式系统关系图(如应用程序关系图或系统关系图)在解决方案级别确定范围,而其他系统定义模型 (SDM) 文档(如应用程序定义 (.sdm) 文件)则可以在项目级别确定范围。像签入或签出任何其他文件一样,可以将这些文件签入或签出源代码管理。但是,在考虑这些文档与源代码管理的交互方式时(尤其是在对其执行同步时),应了解以下注意事项。

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

以下各节包含有关 SDM 文档与源代码管理的交互方式的更多信息:

  • 签出本地版本与签出服务器版本

  • 添加共享解决方案中的 SDM 文档或某些项目文件

  • 在源代码管理下同步

签出本地版本与签出服务器版本

可以选择签出文件的本地版本或服务器版本,具体取决于源代码管理设置。但是,SDM 文档不支持在同步过程中重新加载。因此,如果在签入文件时对其进行更改,然后签出这些文件的服务器版本,则会阻止它们在重新加载的过程中与解决方案同步。例如,如果将 Microsoft FrontPage 源代码管理集成用于应用程序设计器所生成的 Web 项目,则当这些项目处于重新加载过程中时,可能会自动将对这些项目的更改排除在同步范围之外。

提示:

若要避免此情况,请在执行任何要求重新加载文件的操作之前签出文件,或将源代码管理选项设置为始终签出文件的本地版本。

添加共享解决方案中的 SDM 文档或某些项目文件

如果您使用的是 Team Foundation 版本控制 并且要将一个 SDM 文档或某些项目文件(如代码文件)从其他解决方案中添加到您的解决方案中,则您无法使用“在源代码管理中打开”对话框将该项添加到您的解决方案中。此对话框不显示用于进行以下选择的选项:从全部文件中进行选择,或选择带有 SDM 文件扩展名或某些其他项目文件扩展名(如代码文件扩展名)的项。有关更多信息,请参见如何:从版本控制打开解决方案和项目

若要将这些文件添加到您的解决方案中,请参见如何:添加源代码管理下的共享解决方案中的 SDM 文档和项目文件

在源代码管理下同步

当应用程序关系图上的某些应用程序定义实现时,将为其中的每个定义生成一个应用程序项目。项目包含代码文件、配置 (.config) 文件和 .sdm 文件等文件。此 .sdm 文件是一个 SDM 文档,其中包含有关应用程序定义的元数据。

对应用程序关系图或与项目关联的代码或 .config 文件进行更改时,应用程序关系图和所有 .sdm 文件都必须进行更新。实现应用程序后,即使代码和关系图已相互同步,代码也会成为主定义。如果应用程序关系图已打开,则 Visual Studio 将尝试立即同步这些更改。例如,向 ASP.NET 应用程序的项目中添加 Web 服务定义和 .asmx 文件或更改影响 .sdm 文件的应用程序关系图都会触发同步。有关更多信息,请参见跨系统定义模型 (SDM) 文档的同步

要求或不要求为同步签出的情况

根据具体情况,同步过程中可能要求也可能不要求进行签出。如果同步所需的任何文件(如应用程序关系图 (.ad) 文件或 .sdm 文件)已签入 Visual Studio 源代码管理中,则 Visual Studio 将自动签出所需的文件或提示您签出这些文件,具体取决于源代码管理用户设置的情况。

说明:

可能会看到一个或多个签出提示,具体取决于所需文件数。

例如,如果解决方案包含应用程序关系图 (.ad) 文件,并且您将一个或多个项目(先前为该应用程序关系图中的应用程序生成的项目)从源代码管理添加至该解决方案,则 Visual Studio 将自动签出这些项目中的 .sdm 文件,或者提示您将它们签出。不要取消签出,因为在应用程序关系图处于打开状态或下次打开该关系图时,该关系图将变为锁定。有关更多信息,请参见取消签出和应用程序关系图疑难解答

提示:

在使用完 SDM 文档(如 .sdm 文件)后,请将它们签入,这样,举例来说,当其他用户需要将含有 .sdm 文件的项目添加到包含应用程序关系图文件的解决方案时,他们就可以将这些文档签出。

表示配置 (.config) 文件中的项的设置同时存储在 .sdm 文件和 .config 文件中,即使在实现后也是如此。因此,使用设置和约束编辑器对设置(或约束)所做的更改,或者对既存在于 .config 文件中又在 .sdm 文件中表示的任何设置所做的更改,均要求签出应用程序关系图和 .sdm 文件。有关更多信息,请参见应用设置

相比之下,当实现具有 Web 服务的 ASP.NET 应用程序时,Web 服务操作由 Web 服务类文件定义,并且不再在应用程序关系图 (.ad) 文件中进行表示。因此,使用“Web 服务详细信息”窗口或直接在代码中对 Web 服务操作所做的更改不要求签出应用程序关系图,因为这些更改会影响 Web 服务类文件。有关更多信息,请参见应用程序关系图上的 ASP.NET 应用程序概述

取消签出

可以在出现提示时选择取消签出,但取消签出将阻止 Visual Studio 同步所需的文件。根据需要签出的更改,取消签出可能会产生以下结果:

  • 通过设计器所做的更改将被回滚。最初的更改和所有后续更改都将被回滚。

  • 对代码或配置文件所做的更改不会被回滚。

    应用程序关系图 (.ad) 文件将锁定,并显示为只读状态。“错误列表”窗口中将显示一个错误,指示无法完成同步。应用程序关系图的只读状态指示它不能与关联的项目文件同步,并且可能包含未同步的信息。

    若要解决这一问题,请关闭关系图,撤消未回滚的所有更改,并重新打开关系图,这样将会尝试同步关系图。有关更多信息,请参见应用程序关系图疑难解答

  • 可能无法编译代码,并出现生成错误。

如果应用程序关系图已签入源代码管理中,则同步该关系图时将要求将其签出。但是,如果源代码管理被设置为签出关系图的服务器版本,则必须重新加载该关系图。由于 SDM 文档不支持在同步过程中重新加载,所以不能签出关系图。如果应用程序关系图不能签出,则它将不能同步,并将锁定。若要解决锁定的应用程序关系图,可以关闭并重新打开该关系图,这将尝试同步关系图。

若要避免此情况,请在执行任何要求重新加载文件的操作之前签出文件,或将源代码管理选项设置为始终签出文件的本地版本。

获取最新版本的 SDM 文档

在应用程序关系图 (.ad) 文件打开时获取最新版本的 SDM 文档将导致此关系图锁定并以只读状态显示。此操作需要重新加载应用程序关系图,因此可能导致这些文件不同步。有关更多信息,请参见应用程序关系图疑难解答

若要解决应用程序关系图锁定的问题,请关闭该关系图,然后再重新打开它。

请参见

参考

并发签出和更改系统定义模型 (SDM) 文档

其他资源

Team Foundation

分布式系统设计器概述