Как я могу скопировать зависимости из проекта библиотеки в основной проект?
У меня есть проект Asp.Net (Vb.Net), который ссылается на управляемую DLL (библиотека, написанная на C#). В этом библиотечном проекте есть несколько неуправляемых библиотек зависимостей в папке lib (скопированных в папку bin/Release/lib во время сборки). Библиотека не является частью основного решения.
Моя библиотека использует [DllImport], который ссылается на неуправляемую DLL. Но чтобы позволить найти неуправляемую dll, я вызываю SetDllDirectory():
string path = // don't know how to generate the path
SetDllDirectory(path);
Я борюсь с созданием пути к неуправляемой DLL и ее зависимостей. Я могу начать с моей основной папки проекта bin или что-то. Но что мне делать дальше? Например, есть ли способ скопировать неуправляемые библиотеки из папки bin/Release/lib библиотеки в папку bin моего основного проекта? Или какое-то другое решение?
1 ответ
Есть два способа сделать это:
Добавьте Dlls в проект VS как файл, затем установите
Build Action
вNone
а такжеCopy to output directory
какCopy
, Это должно гарантировать, что все внешние зависимости указанной библиотеки будут скопированы.Добавить команду как
xcopy "$(ProjectDir)lib\*.*" "$(OutDir)\" /y /e
или жеxcopy "$(ProjectDir)lib\*.*" "$(TargetDir)" /y
в раздел "События сборки" в свойствах проекта. Это должно скопировать каталог \lib из корневого каталога проекта в вывод.