7

我正在处理的项目使用一个 .NET 解决方案文件和多个 C# 项目。IDE 是 Visual Studio 2012,Perforce 用于源代码控制。和文件包含 SCC 绑定信息.sln.csproj例如 .csproj 文件:

<SccProjectName>Perforce Project</SccProjectName>
<SccLocalPath>..</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>MSSCCI:Perforce SCM</SccProvider>

...和 ​​.sln 文件:

Global
    GlobalSection(SourceCodeControl) = preSolution
        SccNumberOfProjects = 43
        SccLocalPath0 = .
        SccProjectUniqueName1 = AnotherProj\\AnotherProj.csproj
        SccLocalPath1 = .
        SccProjectFilePathRelativizedFromConnection1 = AnotherProj\\
        SccProjectUniqueName2 = MyProj\u0020Domain\\MyProj\u0020Domain.csproj
        SccLocalPath2 = .
        SccProjectFilePathRelativizedFromConnection2 = MyProj\u0020Domain\\
    ... etc ...

根据 Perforce,有一个从 P4SCC 迁移到 P4VS 的过程:

从 P4SCC 迁移到 P4VS 要将您的解决方案和项目从 P4SCC(Perforce SCC 插件)迁移到 P4VS,您必须执行以下操作: 1. 从解决方案 (.sln) 文件和所有项目文件 ( csproj、vcxproj 等)。2. 删除 MSSCCPROJ.SCC 和其他源代码控制特定文件。3. 将所有开发人员移至 P4VS 并让他们卸载旧的 P4SCC 插件。有关详细说明,请参阅 www.perforce.com/perforce/doc.current/user/p4vs_p4scc_migration.txt

但是,由于项目的测试状态,这些文件可能不会被修改。此外,一些开发人员更喜欢使用 P4SCC。

虽然我了解官方流程是将项目和解决方案迁移(从 P4SCC)以使用 P4VS,但我确实记得在网上阅读过评论(我没有链接),其中有人声称他能够使用两者一起,无需修改项目文件。

是否可以在每次启动时不必更改源代码控制提供程序并单击一系列有关不匹配绑定的警告/错误消息来执行此操作?如果是这样,怎么做?

4

2 回答 2

2

抱歉,这是不可能的。可以同时安装 P4VS 和 P4SCC 并将其用于不同的项目,但各个项目必须绑定到单个源代码控制提供程序。

于 2014-02-20T15:00:17.440 回答
1

我发现您可以对存在于 .vcxproj 中的 SCC 绑定设置条件,如下所示,这意味着您永远不必检查 .vcxproj,只需检查 .sln,对我们来说它永远不会真正改变。

因此,现在我可以使用 P4VS,而其他人则使用 P4SCC,而不会被烦人的对话框打断(至少在最初从 .sln 中删除源代码控制之后)。

在示例中,我只是在我的环境变量中设置了 BUILD_USE_P4VS=1。任何使用 P4SCC 的人都不会。

<PropertyGroup Label="Globals" Condition="'$(BUILD_USE_P4VS)'==''">  
    <SccProjectName>Perforce Project</SccProjectName>
    <SccLocalPath>..\..\..\..</SccLocalPath>
    <SccProvider>MSSCCI:Perforce SCM</SccProvider>
</PropertyGroup>
于 2015-12-23T11:12:29.787 回答