假设我们有一个具有以下结构的解决方案:
- Project.DAL - 数据访问层,依赖于较低级别的库,例如 Oracle.DataAccess w/copy local = true
- Project.BLL - 业务逻辑层,引用 Project.DAL 作为项目
- Project.UI - UI 层,编译为可执行文件,引用 Project.BLL,默认项目
编译 Project.UI 时,VS 足够聪明,可以将 Project.DAL.dll 复制到输出目录,但它不够聪明,无法弄清楚我希望将 Oracle.DataAccess 复制到输出目录以及分发给客户端.
谁能解释为什么会这样?是因为它在 GAC 中看到 Oracle.DataAccess 并假设客户端也会在 GAC 中拥有它吗?
这没什么大不了的,但是每次我添加一个新的程序集引用时,我都必须记住将它设置为复制本地并添加一个项目以在我的构建脚本中复制它,这有点烦人。