【发布时间】:2018-11-15 00:39:49
【问题描述】:
当这些分支中的 .csproj 项目文件在其所述分支中都有其他项目引用时,我在将 dev 分支合并到主分支时遇到问题。例如,想象一下下面的 TFS 源代码控制结构:
- Web 项目 1(TFS 团队项目)
- 开发分支
- MyWebsite.csproj
- 总支
- MyWebsite.csproj
- Web 项目 2(TFS 团队项目)
- MyWebsite.csproj
- 开发分支
- MyWebsite2.csproj
- 总支
- MyWebsite2.csproj
- 开发分支
- 数据库项目(TFS 团队项目)
- 开发分支
- MyDatabase.csproj
- 总支
- MyDatabase.csproj
- 其他公共库(TFS 团队项目)
- MyDatabase.csproj
- 开发分支
- MyClassLibrary.csproj
- 总支
- MyClassLibrary.csproj
- 开发分支
实际上,结构比上面要复杂一些,因为有更多的项目具有相同的分支结构,但要解决的问题是相同的。
网站项目开发分支引用数据库和公共项目开发分支,网站项目主分支引用数据库和公共项目主分支。例如,MyWebsite.csproj 文件中的引用可能是:
<ProjectReference Include="..\..\Database Project\Dev Branch\MyDatabase.csproj">
<Project>{312ced42-f890-4d64-b27d-9ae53a42304c}</Project>
<Name>MyDatabase</Name>
</ProjectReference>
因此,您正在对 dev 分支进行更改,并且 dev 分支中的 .csproj 文件正确地引用了 dev 分支中的其他 .csproj 文件;但是当您将 dev 分支合并到主分支时,.csproj 文件正在尝试将主干分支的引用更新到 dev 分支。
解决此问题的最佳做法是什么,以便当您从 dev 合并到主干时,主干项目仍然正确引用其他主干项目并且不会更新到 dev 分支引用?
edit 正在寻找非 nuget 建议,但无法将它们组合在一个分支下,因为实际结构比上面概述的要复杂得多。在 3 个独立的 TFS 团队项目中有 3 个独立的 Web 应用程序,它们引用了其中的几个公共库,这些库也在各自的 TFS 项目中。然后每个团队项目都有 dev 和 main 分支。
【问题讨论】:
-
我回复了评论。寻找非 nuget 选项
-
是否正在定义适合您的文件类型:docs.microsoft.com/en-us/tfs/server/admin/manage-file-types?
-
@CeceDong-MSFT 我假设您已经问过这个问题,因为您的建议是忽略 .csproj 文件类型,因此它不会合并。如果是这样,我认为这不是一个可行的选择,因为我仍然希望更新 .csproj 文件,以便在 dev 分支中添加的任何新文件都将合并到 main 中。
-
您可能仍需要考虑 nuget 解决方案。
标签: visual-studio tfs version-control branching-and-merging csproj