2013-09-24 2 views
7

В качестве фона я пытаюсь получить один из примеров работы Emgu CV. Это Motion Detection example упоминается в the answer to "Looking for a function for motion detection on emgucv"Содержимое «Всегда копировать» (DLL) в исполняемый каталог root

Чтобы получить пример кода работает, мне нужно добавить ссылки на Emgu CV библиотек DLL к проекту, а также убедитесь, что соответствующие библиотеки DLL Open CV копируются в выходной исполняемый директории проекта строить. Соответствующие DLL --копии on the EMGU wiki.

Я добавление библиотеки DLL Open CV, добавив их в качестве контента на примере проекта и пометив их как «Копировать всегда» в свойствах содержимого:

Content properties in VS2012 set to "Copy always"

Я не хочу эти захламления корневой уровень проекта, поэтому я добавил папку проекта, чтобы поместить эти библиотеки DLL в:

Solution Explorer showing project folder with DLLs in

Однако, когда я строю проекта библиотеки DLL копируются с одной и той же директории иерархия, то есть у них есть папка ограждающую внутри каталога исполнения, который я не хочу:

File Explorer showing directory containing the DLLs

Какие свойства делают мне нужно установить, чтобы гарантировать, что библиотеки DLL копируются в каталог выполнения, но в корне, а чем в подкаталоге?

========== ========== EDIT

Обратите внимание, что я не могу добавить эти библиотеки DLL в качестве ссылки на проект, поскольку они не являются ни .Net сборки, ни COM компоненты, но библиотеки Open CV C++.

ответ

3

Наша группа хранит файлы в папке, подобной вам, однако вместо добавления папки в проект мы ссылаемся на эти DLL в вашем основном проекте на , добавляя элементы в виде ссылки на верхний уровень вашей папки :

Image of adding items as a link

Как и прежде, каждый элемент установлен в качестве Материалы и Copy Всегда (пункты, показанные в папке решения):

view of solution

Затем, когда вы строите они будут делать его в выходной каталог:

output directory

Это не так хороша, - вы все еще увидеть их все в главном проекте - но по крайней мере, помещает их в нужное место.

3

Говоря с другим разработчиком на работе, он использует другое обходное решение.Он хранит библиотеку DLL в папке проекта, а затем добавляет событие после построения в страницах свойств проекта, чтобы скопировать библиотеки DLL в каталог с исполняемым:

copy/b/y "$(ProjectDir)Libs\*.dll" "$(TargetDir)" 

user7116's advice и мой коллега являются большими обходными, но я оставив вопрос открытым, в любом случае кто-то обнаруживает (или добавляет Microsoft) способ фактически устанавливать свойства в файлах содержимого, чтобы гарантировать, что библиотеки DLL будут скопированы в корневой каталог выполнения, а не в подкаталог.

 Смежные вопросы

  • Нет связанных вопросов^_^