Как я могу скопировать зависимости из проекта библиотеки в основной проект?

У меня есть проект 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 ответ

Решение

Есть два способа сделать это:

  1. Добавьте Dlls в проект VS как файл, затем установите Build Action в None а также Copy to output directory как Copy, Это должно гарантировать, что все внешние зависимости указанной библиотеки будут скопированы.

  2. Добавить команду как xcopy "$(ProjectDir)lib\*.*" "$(OutDir)\" /y /e или же xcopy "$(ProjectDir)lib\*.*" "$(TargetDir)" /y в раздел "События сборки" в свойствах проекта. Это должно скопировать каталог \lib из корневого каталога проекта в вывод.

Другие вопросы по тегам