在团队开发环境中使用 Visual Studio .NET (二)

来源:岁月联盟 编辑:exp 时间:2003-07-12

脱机时签入文件


不可能在脱机时签入文件;因为您未连接到网络,签入命令未启用。这是故意设置的,这样可以在项目重新联机时方便地查看哪些文件在脱机时被签出。

进入联机状态


这与进入脱机状态基本上相同。若要使解决方案及其项目联机,请在“File”菜单上,单击“Source Control”,然后单击“Change Source Control...”。显示的对话框与进入脱机状态时相同。选择“Connected”即可使解决方案和项目联机。

同步更改


若要使脱机工作时所做的更改与 Visual SourceSafe 数据库中包含的解决方案和项目文件同步,需要从 Visual SourceSafe 中签出脱机工作时签出的每个文件,并将更改过的文件副本签入 Visual SourceSafe。
进入联机状态后,将对每个在脱机状态下签出的文件显示以下两个对话框:

图 10:协调断开连接状态下签出的文件
首先,单击“Check out”(如图 10 所示)。

图 11:从 Visual SourceSafe 签出文件
选择“Leave this file?”可防止您的修改被 Visual SourceSafe 中包含的版本覆盖。然后,需要签入您修改后的文件。
警告:如果其他人签入了此文件,然后您又签入了相同文件,则将覆盖其他人所作的变更。
注意:这些对话框仅对您在脱机状态下签出的文件显示,而不会对进入脱机状态之前已签出的文件显示。练习警告,如第一个对话框所指出的,可能会丢失数据。

您在脱机工作时,如果签出一个文件,而另一个团队成员也签出、修改和签入了同一文件,则必须非常谨慎,否则您的签入将覆盖该团队成员的修改。最安全的选择是避免脱机文件签出。总是在脱机前签出您要处理的文件。如果无法做到这一点,或您忘记了在脱机前签出了所有要处理的文件,则在同步更改时手动合并文件。
如果您在脱机工作时签出了一个文件,而另一个用户也签出了同一文件,则当您使解决方案和项目联机时,会显示以下对话框:

图 12:试图签出已签出的文件时显示的警告
单击“OK”。在 Solution Explorer 中,此文件旁会显示一个小警告符号,表示该文件仍需注意。
最后,如果您在脱机状态下将文件添加到项目,则使项目联机时,只需将新文件签入 Visual SourceSafe 即可。

提示与技巧

URL 一致


所有的开发人员最好使用统一的虚拟根目录,例如 http://localhost/projectName。尽量避免使用特定的服务器名称,因为这可能使用户难以共享项目文件。如果需要使用特定服务器名称,请在 web.config 文件内定义一个新的 <configSections>,并用它定义应用程序的自定义设置。如果您在使用 Web 引用,则将 Web 服务放在本地并使用 http://localhost/webServiceName 作为 Web 引用,或将 Web 引用 URL 行为设置为动态。动态 URL 行为将在稍后说明。

引用路径一致


将引用添加到一个非系统程序集时,IDE 会将程序集本地复制到项目(对于 Web 应用程序,程序集将被复制到 bin 目录)。若要控制程序集是否进行本地复制,请用鼠标右键单击程序集,然后单击“Propertities”。对于非系统程序集,“Copy Local”应设置为“True”。这是默认值,推荐在大多数情况下使用。
当添加引用时,IDE 还会更新用户项目文件内的引用路径,以指出程序集的实际位置。用鼠标右键单击项目,然后单击“Propertities”。单击“Common Properties”,然后单击“References Paths”。在对话框中(如图 13 所示),单击“Cancel”。

图 13:显示引用路径
尽管引用路径显示为项目的一个属性,实际上它对于设置了该属性的项目、计算机和用户来说是特有的。这就意味者,如果开发人员 1 将引用添加到程序集并签入了项目文件,则当开发人员 2 获得项目文件的最新版本时,程序集将显示在 Solution Explorer 内——但是生成很可能会失败,因为开发人员 2 可能不具有相同的引用路径。
要避免此问题,团队的所有开发人员应该在团队内部使用统一的引用路径。这样,只要符合以下条件,则某开发人员添加引用后其他开发人员就无需对解决方案或项目文件进行任何操作:
  • 引用路径已经设置,对每个项目任务只需设置一次
  • 引用的程序集已存在于硬盘上,并且位置正确

该方法要求定义一个标准的生成输出位置,并使所有的引用都引用该位置内的程序集。如果该条件太严格,可以在引用路径内包含用逗号分隔的多个路径。

添加 Web 引用


这也是 Visual Studio .NET Beta 2 相对于 Visual Studio .NET Beta 1 的改进之一。
在您的项目所在的文件夹内,存在一个 Web References 文件夹。添加 Web 引用时,会在 Web References 文件夹下创建一个新文件夹。该新文件夹根据托管 Web 服务的服务器命名,并包含 WSDL、DISCO 和生成的 Web 服务客户端代理。该文件夹名称还用作 Web 服务客户端代理的名称空间。
添加 Web 引用时,这些文件夹和文件将添加到 Visual SourceSafe 项目。更新 Web 引用时,还将签出、更新和签入这些文件。(用鼠标右键单击 Web 引用,然后单击“Update Web Referemce”。)
添加 Web 引用时,Web 服务 URL 在 Web 服务客户端代理内被硬编码。但是,可以更改 Web 服务客户端代理的行为,使它从 .config 文件读取 Web 服务 URL。请用鼠标右键单击 Web 引用,单击“Properties”,并将“URL Behavior”从“Static”更改为“Dynamic”。

图 14:Web 引用属性
下列代码将被添加到 .config 文件:
<configuration>    <appSettings>        <add key="WinApp1.localhost.Service1" 
        value="http://localhost/WebServiceTest/Service1.asmx" />    </appSettings></configuration>

Web 服务客户端代理的构造函数也被修改,以便从 .config 文件读取 Web 服务 URL。
需要注意的一个问题是,不能添加两个指向同一服务器,但指向不同 Web 服务的 Web 引用。这是因为 IDE 会试图用已存在的文件夹名称创建另一个 Web 引用。请参阅以上关于如何在文件系统内表示 Web 引用的说明。
但是,这不过是一个小问题。只需将文件夹重命名为实际服务的名称,而不要将其名称(以及名称空间名称)保留为托管 Web 服务的服务器的名称。请用鼠标右键单击 Web 引用,单击“Propertities”并更改“Folder Name”。

Visual Studio .NET Beta 2 中的问题

项目文件签出


项目文件需要进行更改时会自动签出。将文件添加到项目或更改项目设置时,通常会发生这种情况。但是,项目文件在修改后经常不会签入。在某些情况下,在生成过程和编辑表单过程中会发生不必要的项目文件签出行为。这些是已知错误,应在最终版本中解决。
最终结果是这可能导致团队开发人员争用项目文件。如果发现团队成员在项目文件签出时产生冲突,可能需要切换到共享签出。
请注意,Solution Explorer 中的特殊 ! 标识符号表示您已以独占方式签出项目文件。

多解决方案中的项目


尽管 Visual SourceSafe 集成支持将项目用于多个解决方案,但仍存在一个错误。使用 Visual Studio .NET Beta 2 时,最好尽量小心并确保每个项目只属于一个解决方案。

脱机工作


脱机工作时,有许多需要注意的问题。最主要的问题是需要取消警告对话框,以便在脱机工作时成功地签出文件。该问题以及其他问题在前面已经叙述过。

项目不在 Visual SourceSafe 内


这可能是个小问题,但如果您的项目不在 Visual SourceSafe 内,并且解决方案在 Visual SourceSafe 内,则 Solution Explorer 会将项目及其文件显示为签出状态,即使它们不在 Visual SourceSafe 中。可以认为签出的标识符表示“本地更改”或不添加到 Visual SourceSafe。签入命令将项目文件添加到 Visual SourceSafe 中。

删除引用


这可能也是个小问题,但如果删除了对非系统程序集的引用,IDE 将不会更新用户项目文件内的引用路径。即使不再引用程序集,程序集的实际位置仍保留在引用路径内。

生成多项目解决方案


默认情况下,每个项目都应生成到自己的输出目录。通常,项目会生成到 bin/debug 或 bin/release 子目录。不支持将一个解决方案内的多个项目生成到同一目录中。
对同一解决方案中的任何引用(即被同一解决方案内的其他项目引用的项目生成输出),“Copy Local”应保留为默认值 TRUE。这既适用于程序集引用,也适用于项目之间的引用。

总结


Visual Studio .NET Beta 2 中的团队工作特性是相对于 Visual Studio .NET Beta 1 的一项重大改进。现在所有的核心方案都能工作,而且大多数运行良好。尽管在发布之前仍需要解决一些小错误,Visual SourceSafe 集成和 IDE 的变化还是带来了改进的团队开发体验。现在可以更轻松地在开发人员之间共享项目文件和源代码文件,并可以更轻松地将应用程序从开发环境移到测试和产品环境。