我想我误解了一些关于 Visual Studio 的项目引用或 SVN:externals - 也许两者都有:) -。
事实上,我有三个项目:
- A 本身没有引用
- B 指 A 的 DLL,更新时通过 SVN:externals 签出(到项目目录内的某个位置)。
- C,在更新时,将(通过 SVN:externals)A 和 B 的 DLL 检出到项目内的目录(比如说path.to.project.C\Libraries\A和path.to.project.C\Libraries\B)
在项目 C 上,当我添加 A 的 DLL 作为路径path.to.project.C\Libraries\A的引用时,Visual Studio 将path.to.project.C\Libraries\B作为其路径。在我看来,这忽略了我的选择并在错误的路径上自动解析 A 的 DLL。
使用此配置我:
- 更新一些 A 的代码,编译项目,并将 DLL 提交到存储库。
- 从存储库项目更新 C.
- C 项目最终使用了 A 的 DLL 的过时版本(因为它在从 subversion 签出的项目 B 的文件上搜索 A 的 DLL。此时,这些文件没有使用最后的更改进行更新)。
任何提示将不胜感激。