Я создаю инструмент в управляемом коде (в основном C ++ / CLI) в двух версиях: версия для обычного пользователя и версия для профессионалов.
Тот факт, что код ядра идентичен между двумя версиями, вызвал у меня небольшую проблему, поскольку я хочу упаковать полученный инструмент как одну сборку (DLL), и я не хочу включать файлы .cpp для общего кода в проектах двух версий инструментов. Я предпочел бы иметь проект для общего кода и проект для каждой версии инструмента, и каждая версия проекта инструментов зависит от общего кода и связывает его по желанию.
В неуправляемом C ++ я бы сделал это, поместив общий код в статическую библиотеку и связав с ней обе версии инструмента. Кажется, я не могу заставить это работать в C ++ / CLI. Кажется, я вынужден встроить общий код в сборку DLL, и в результате получается больше DLL, чем хотелось бы.
Итак, в общем, я не могу понять, как создать общий код в одном проекте и связать его с каждым из конечных проектов продукта, чтобы создать две отдельные сборки DLL, каждая из которых включает в себя общий код.
Возможно, я что-то делаю не так, но я пытался понять, как это сделать, используя сетевые модули и все такое, и я просто не мог заставить это работать. В конце концов, единственный способ, с помощью которого я заработал, - это сказать компоновщику связать продукты сборки общей сборки кода, а не результаты, которые работают, но это немного хак, ИМХО.
В любом случае, есть ли у кого-нибудь предложения о том, как мне СЛЕДУЕТ решать эту проблему?
Отредактировано: Полагаю, я должен был упомянуть тот факт, что сгенерированные сборки не являются на 100% управляемым кодом, они содержат смесь управляемого и неуправляемого кода, что, вероятно, довольно часто встречается в сборках, созданных с помощью C ++ / CLI ...