Общая картина: я пытаюсь написать код на C # и C ++, чтобы добиться хорошего баланса между производительностью и производительностью. Это не по причинам повторного использования кода; Я просто хочу иметь возможность писать новый код на нативном C ++, когда он мне подходит, без всяких ужасов.
У меня есть решение с 4 проектами:
- GUI: интерфейс C # WPF
- Logic_Cs: C # DLL, высокоуровневая эталонная реализация игровой логики
- Logic_CLI: CLI DLL, интерфейс между управляемым и неуправляемым кодом
- Logic_Cpp: C ++ lib с собственной реализацией
В какой-то момент все это работало просто отлично. В моем GUI-проекте я мог переключаться между реализацией C # / C ++, просто используя пространство имен из соответствующей DLL.
Тогда я, по-видимому, что-то изменил, и теперь я не могу распознать пространство имен в проекте Logic_CLI в проекте GUI, хотя пространство имен Logic_Cs по-прежнему работает просто отлично.
Да, я добавил правильные ссылки, установил зависимости, перестроил И воссоздал всю структуру своего решения с нуля; ничего не помогает.
Я заметил, что C # DLL собирается в папку в своем собственном каталоге проекта, а CLI - в каталог решения; но приложение GUI, похоже, все равно ищет DLL в их правильном каталоге, и я не получаю никаких жалоб на DLL; он просто отказывается импортировать из него пространство имен.
Раньше, когда все это работало, я не экспортировал явно что-либо из библиотеки CLI; и при этом я не делаю это для C # DLL. Это должно «просто работать», нет?