Скажем, мы имеем решение со следующей структурой:
- Project.DAL - Уровень доступа к данным, зависит от библиотеки нижнего уровня, например Oracle.DataAccess с локальной копией = true
- Project.BLL - Уровень бизнес-логики, ссылки Project.DAL as проект
- Project.UI - слой пользовательского интерфейса, компилируется в исполняемый файл, ссылки Project.BLL, проект по умолчанию
Когда Project.UI скомпилирован, VS достаточно умен, чтобы скопировать файл Project.DAL.dll в выходной каталог, но он недостаточно умен, чтобы понять, что я хотел бы, чтобы Oracle.DataAccess был скопирован в выходной каталог, а также для распространение для клиентов.
Может ли кто-нибудь объяснить, почему это так? Это потому, что он видит Oracle.DataAccess в GAC и предполагает, что клиенты будут иметь его и в GAC?
Это не такая уж большая сделка, но это раздражает, что каждый раз, когда я добавляю новую ссылку на сборку, я должен помнить, что она должна скопировать локальную и добавить элемент, чтобы скопировать его в мою сборку script,