我遇到了将dev分支合并到主分支的问题,当这些分支中的.csproj项目文件在其所述分支中都有其他项目引用时。例如,想象下面的TFS源控制结构:
实际上,结构比上面的要复杂得多,因为有更多项目具有相同的分支结构,但要解决的问题是相同的。
网站项目开发分支引用数据库和公共项目开发分支,网站项目主分支引用数据库和公共项目主分支。例如,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文件正在尝试更新从trunk分支到dev分支的引用。
解决此问题的最佳做法是什么,以便在从dev合并到trunk时,trunk项目仍然正确引用其他trunk项目,并且不会更新到dev分支引用?
编辑寻找非nuget建议,并且无法将它们合并到一个分支下,因为实际结构比上面概述的要复杂得多。在3个独立的TFS团队项目中有3个独立的Web应用程序,它们引用了这些公共库中的几个,这些库也在它们自己的TFS项目中。然后,每个团队项目都有开发和主要分支。
答案 0 :(得分:1)
如果这些内容是单独版本化的,请停止依赖项目引用。将它们转换为NuGet包,将它们发布到NuGet提要,并依赖NuGet引用来恢复正确的版本。
如果这些内容未单独版本化,请将它们全部放在同一分支下,并依赖于不包含分支文件夹名称的项目引用的相对路径。