В чем проблема динамического подключения DLL?
Что я делаю не так?  все
если бы у вас была DLL на C/C++ - был бы повод и способ решения.. для дотнета - вам нужно просто включить проект библиотеки в в решение (solution)
.. сравните с тем как подключаются nuget пакеты, это образец решенияpsЦель в том, чтобы dll подгружалась с сервера, и существовала только в оперативной памяти, поэтому подобные танцы с бубном  намек - чаще такие вещи решаются через скриптованиеpps Алексей Павлов, Степан Гервик,  я неправильно выразился, под фразой "только подключение сборки" я имел в виду, как раз динамическое подключение сборки, либо через Assembly.Load, либо AppDomain.Load() +Цель в том, чтобы dll подгружалась с сервера, и существовала только в оперативной памяти, поэтому подобные танцы с бубном.. ну начнем с того, что надо иметь правильно компилированные версии DLL для всех вероятных клиентских ОС.. это изначально выбор пути жуткого геморроя.. думаю на этом можно и закончить ))
Assembly a = Assembly.LoadFrom("ConsoleClient.dll");
            Type[] types = a.GetTypes();
            foreach (Type z in types)
                Console.WriteLine("--> " + z);
            Console.WriteLine();
            Object o = a.CreateInstance("Program");
            Type t = a.GetType("ConsoleClient.Program");

            Object[] numbers = new Object[2];
            numbers[0] = 2;
            numbers[1] = 3;
            MethodInfo mi = t.GetMethod("add");
            Console.WriteLine(mi.Invoke(o, numbers));
            //чтобы консоль мгновенно не закрылась
            Console.ReadLine();
Как-то так