У меня есть решение с двумя проектами. Один для проекта для производственного кода и другой проект для модульных тестов. Я сделал это в соответствии с предложениями, которые я получил от SO.
Я заметил, что в папке отладки она содержит производственный код в исполняемом виде. Я использовал NUnit для запуска тестов после удаления исполняемого файла, и все они не могут найти исполняемый файл. Так что он определенно пытается найти его. Затем я быстро прочитал, чтобы выяснить, что лучше: DLL или исполняемый файл. Кажется, что DLL намного быстрее, поскольку они разделяют пространство памяти, где связь между исполняемыми файлами медленнее.
К сожалению, наш производственный код должен быть выполнимым. Таким образом, юнит-тесты будут немного медленнее. Я не слишком беспокоюсь об этом. Но проект полагается на код, написанный в другой библиотеке, которая также находится в исполняемом формате на данный момент.
Должны ли проекты, которые предоставляют какой-либо SDK, быть скомпилированы в DLL, а затем проекты, использующие SDK, скомпилированы в исполняемый файл?