ОК, вот проблема.Каждый из проектов DLL создает копию своей библиотеки DLL в своей папке проекта ./bin/Release/ или ./bin/Debug/.
Вы не можете включить их в качестве встроенных ресурсов в проект EXE, потому что они не находятся в папке проекта EXE.
Когда проект EXE завершает сборку, он копирует библиотеки DLL проекта в свои собственные ./bin/Release/ или .bin / Debug /.Поскольку эти скопированные файлы находятся в папке проекта EXE, вы можете включить их в качестве встроенных ресурсов, за исключением того, что вы не хотите, потому что они не существуют, пока сборка не будет завершена, и сборка не будет завершена, если они не будут выполнены.'t there.
Решение состоит в том, чтобы поместить копию библиотек DLL где-то еще в папку проекта EXE и включить эти копии в сборку в качестве встроенных ресурсов.Я вставил их в ./DLLs/.
И затем, чтобы исключить необходимость их копирования вручную, я добавил событие предварительной сборки:
COPY $(SolutionDir)\myDLL\bin\$(ConfigurationName)\myDLL.dll $(ProjectDir)\DLLs
Обратите внимание, как это будет копироватьлибо отладочная, либо выпускная версия DLL, в зависимости от того, что я собираю.