В качестве альтернативного подхода вы можете добавить сборки в основную сборку.Есть такие коммерческие инструменты, которые поддерживают это, например DeepSea Obfuscator или вы можете использовать ilmerge .
Общий способ работы заключается в том, что вы разрабатываете с использованием отдельных сборок и когда вы отправляетеВ продукте вы делаете дополнительный шаг сборки, который объединяет сборки в одну большую сборку.Вы даже можете интернализировать внедренные сборки, чтобы был доступен только ваш общедоступный интерфейс.
Таким образом, вы можете развернуть свой продукт как одну сборку, что особенно удобно, если вы создаете компоненты.
Чтобы ответить на ваш второй вопрос;.NET Framework будет выглядеть в нескольких местах.GAC является доминирующим, но если вы убедитесь, что указанная сборка находится в той же папке, что и основная сборка, .NET ее найдет.Нет необходимости регистрировать его в GAC.