我想管理一个包含多个项目的解决方案,并将它们中的每一个放在自己的存储库结构(分支/标签/主干)中。我有一个项目 Test1 并将其提交到它自己的存储库:
trunk
Test1
Properties
Class1.cs
Test1.csproj
Test1.sln
我有另一个项目Test2,我将它提交到它自己的存储库,Test2依赖于Test1。我使用svn:enxternals在Test2中引用Test1,然后在Visual Studio中右键单击解决方案Test2,然后添加->现有项目,添加Test1。
branches/
tags/
trunk/
Test2/
Properties/
Class2.cs
Test2.csproj
Test2.sln
svn:externals Test1 https://mydomain/Test1/trunk/Test1
我还有一个依赖于Test2的项目Test3:
branches/
tags/
trunk/
Test3/
Properties/
Class3.cs
Test3.csproj
Test3.sln
svn:externals Test2 https://svn/Test2/trunk/Test2
然后执行与Test2相同的操作。
但是当我将Test2项目添加到Test3时,Test2项目(Test1)的依赖关系不存在,然后当我想构建Test3时出现错误。
为了解决这个问题,我在 Test3 存储库中使用了以下 sv:externals commnad:
svn:externals Test2 https://mydomain/Test2/trunk
但是当我更新 Test3 解决方案时,Test3 中会出现以下结构:
Test3/
Properties/
Class3.cs
Test3.csproj
Test2
Test2/
Properties/
Class2.cs
Test2.csproj
Test1
Properties/
Class1.cs
Test1.csproj
Test2.sln
Test3.sln
但这不是理想的方法,因为我只想检查 Test1 dll 而不是 Test1 项目,并且为了构建 Test3,我们必须首先构建驻留在 Tes3/Test2/Test1/Test1.csproj 中的 Test1 项目,然后构建 Test3/Test2.sln。
解决此问题的最佳方法是什么?