ASP.Net компилирует страницы по требованию, что в основном означает, что вам нужно использовать BuildManager, чтобы убедиться, что они есть. По сути, он проверяет, есть ли он там и обновлен ли он, а если нет, то создаст сборку.
var pg = System.Web.Compilation.BuildManager.GetCompiledType([relative path]);
Если вы уже на странице, это, конечно, просто:
var pg = this;
Другая информация здесь
Все, что использует Assembly.Location для динамической загрузки сборок по этому пути, является некорректным и может даже сломать ваше приложение. Если вы это сделаете, вы рискуете загрузить старую сборку - и когда работник ASP.NET выяснит, что он должен перекомпилировать эту вещь, загрузка новой сборки может завершиться неудачей из-за конфликтов имен. Вы также смотрите на старый код. Короче говоря: не делай этого.