Проблемы при "построении" службы WCF REST со ссылкой на другой проект - PullRequest
1 голос
/ 26 июля 2011

У меня есть решение с двумя проектами:

  1. Проект DataAccessLayer - понятная библиотека классов, которая имеет ссылку на dll коннектора .NET MySql и может сохранять свои настройки в файле настроек.
  2. Проект 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

1 Ответ

0 голосов
/ 26 июля 2011

Я предполагаю, что на MySQL.Data.dll ссылается проект DataAccessLayer.Если это так, перейдите по ссылке и откройте ее свойства.Должна быть опция, которая говорит Copy Local, дважды проверьте, что она установлена ​​в true (я думаю, что по умолчанию это false).И если это не проблема, вы можете попробовать ссылаться на DLL в проекте WebService, который должен скопировать его.Или вы можете добавить DLL в GAC или, в худшем случае, вы всегда можете просто скопировать файлы вручную (если он находится в каталоге bin, он должен его найти), но это отстает в долгосрочной перспективе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...