Является ли следующее решение единственной возможностью использовать библиотеки из GAC в коде?
Assembly lib = Assembly.Load("MyLibrary, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=31f5625abd53197f");
Console.WriteLine(lib.GetType("MyClass").GetMethod("Start").Invoke(obj, null));
Я немного сбит с толку - я много читал о GAC и знаю, как подписать сборку, установить и удалить сборку в GAC, но не знаю, как ее использовать и как она помогает программистам ( за исключением того, что он хранит разные версии одной и той же библиотеки безопасно). Хотелось бы, чтобы я мог нормально создавать классы, не заставляя вызывать методы, представленные выше.
Я не хочу никаких обходных путей, таких как: «изменение реестра Windows», потому что я не думаю, что GAC был разработан для таких манипуляций. Я хочу простой ответ: для чего нужен GAC, среда выполнения каким-то образом его использует?
Какой смысл использовать GAC, когда код становится действительно уродливым и сложным в управлении? Или может я что-то упустил? Может быть, я должен вручную скопировать сборку в мою локальную папку? Но я слышал, что это тоже сложно сделать.