У меня есть решение с двумя проектами:
- Проект DataAccessLayer - понятная библиотека классов, которая имеет ссылку на dll коннектора .NET MySql и может сохранять свои настройки в файле настроек.
- Проект WebService - имеет службу WCF REST, которая имеет ссылку на проект DataAccessLayer.
После того, как я собрал проект «WebService» (в режиме «Release»), я не могу найти файл DataAccessLayer.dll.config и файл MySql.Data.dll в папке «WebService» Release.
UPDATE:
Что ж, после некоторых экспериментов я решил, что, установив для свойства «Copy Local» ссылки «MySql.Data.dll» значение true в проекте «DataAccessLayer», он скопирует его в «Release Folder» DataAccessLayer при сборке. Но, тем не менее, при создании проекта «WebService» единственные файлы, которые я вижу в папке bin \ Release «WebService», - это файл «DataAccessLayer.dll», файл «WebService.dll» и относительный файл «.pdb» файлы. (до сих пор нет MySql.Data.dll и DataAccessLayer.dll.config).
ОБНОВЛЕНИЕ 2:
Хорошо, не уверен, что есть более элегантное или лучшее решение, но в итоге я добавил событие «Пост-сборка» (Свойства проекта -> События сборки) в проект «WebService», который копирует два файла из выходного каталога «DataAccessLayer» в выходной каталог "WebService" следующим образом:
copy "$(SolutionDir)DataAccessLayer\bin\$(ConfigurationName)\MySql.Data.dll" "$(TargetDir)" &
copy "$(SolutionDir)DataAccessLayer\bin\$(ConfigurationName)\DataAccessLayer.dll.config" "$(TargetDir)"
Если кто-нибудь подумает о более общем способе сделать это, пожалуйста, дайте мне знать!
Спасибо
Mikey