.net 中应该如此简单的东西似乎太难了。
我有一个名为 MyExtenders 的项目,其中包含一些基本类型的简单扩展程序。
许多项目使用 MyExtenders - 因此在传统的 svn 签出和构建方法中,我将 MyExtenders 添加为 svn:external,并将修订锁定到上次构建和测试的版本。
现在,如果我有两个项目都需要将 MyExtenders 添加到同一个解决方案中,那么这一切都会归为一堆。我不能将两个 MyExtenders 添加到解决方案中 - 所以我必须只使用一个 - 在不同修订的情况下意味着使用它重新测试旧项目。
一张图可能最好地解释了依赖关系:
SolutionA
->ProjectA
->->MyExtenders r350 (svn:externed by ProjectA)
->ProjectB
->->MyCryptography r800 (svn:externed by ProjectB)
->->->MyExtenders r800 (svn:externed by MyCryptography)
Delphi/C 可以很好地使用上述内容 - 所有引用都来自他们自己的项目文件夹。
VS 坚持丢失目录结构并将上面的内容扁平化为:
SolutionA
->ProjectA (refers MyExtenders)
->ProjectB (refers MyCryptography)
->MyCryptography r800 (refers MyExtenders)
->MyExtenders r350 || r800 - my choice
我被迫修改其中一个项目以引用不同的 MyExtenders,以及不同的修订版。
显然我做错了..但你怎么做对了?