在源代码管理插件 API 1.2 版中,用户可以为解决方案中的所有 Web 项目指定单个根源代码管理目标。 此单个根调用 super 统一的根 (SUR)。
在源代码管理插件 API 1.1 版,因此,如果用户添加了一个 multiproject 解决方案添加到源代码管理,提示用户为每个 Web 项目指定一个源代码管理目标。
新功能标志
SCC_CAP_CREATESUBPROJECT
SCC_CAP_GETPARENTPROJECT
新增功能
,当将解决方案添加到源代码管理时, Visual Studio IDE 几乎总是创建一个 SUR 文件夹。 具体而言,它因此在以下情况下:
该项是文件共享 Web 项目。
具有项目和解决方案文件的驱动器上。
具有项目和解决方案文件的不同共享。
项目分别添加了 (在源代码管理解决方案)。
在 Visual Studio 建议不带扩展名,名称 SUR 文件夹与解决方案的名称。 下表总结了两个版本的行为。
功能 |
tSource 管理插件 API 1.1 版 |
源代码管理插件 API 1.2 版 |
---|---|---|
将解决方案添加到 SCC |
SccInitialize() SccGetProjPath() SccGetProjPath() SccOpenProject() |
SccInitialize() SccGetProjPath() SccCreateSubProject() SccCreateSubProject() SccOpenProject() |
将项添加到源代码管理解决方案 |
SccGetProjPath() OpenProject() |
SccGetParentProjectPath() SccOpenProject() 备注 Visual Studio 假定,解决方案是 SUR 的直接子级。 |
示例
下表列出了两个示例。 在这两种情况下,提示 Visual Studio 用户输入解决方案的目标位置在源代码管理下,直到user_choice 指定为目标。当 user_choice 指定时,解决方案和两个项目都会添加,而不会提示源代码管理目标的用户。
解决方案包含 |
磁盘位置 |
数据库默认结构 |
---|---|---|
sln1.sln Web1 Web2 |
C: \Solutions \ sln1 C: \Inetpub\wwwroot\Web 1 \ \ server \ wwwroot$ \ web2 |
$user_choice/sln1 $user_choice/C/Web1 $user_choice/Web2 |
sln1.sln Web1 Win1 |
C: \Solutions \ sln1 D: \Inetpub\wwwroot\Web 1 C: \solutions\sln1\Win 1 |
$user_choice/sln1 $user_choice/D/web1 $user_choice/sln1/win1 |
SUR 文件夹和子文件夹中创建无论操作是否已取消或失败由于错误。 它们在撤消或错误状态不会自动移除。
,如果源代码管理插件未返回 SCC_CAP_CREATESUBPROJECT 和 SCC_CAP_GETPARENTPROJECT 功能标志,Visual Studio 默认为 1.1 版行为。 此外, Visual Studio 的用户可以选择还原到 1.1 版行为通过设置以下键的值到大小: 00000001:
[HKEY_CURRENT_USER \Software\Microsoft\VisualStudio\8.0\SourceControl] "DoNotCreateSolutionRootFolderInSourceControl " =dword: 00000001