Я верю, что Assembly.Load - это путь.
Во время запуска приложения вы должны найти модули, подключаемые модули или любые другие подключаемые модули времени выполнения и загрузить их сборки в домен приложения (AppDomain).
Или другой, более удобный вариант: зачемВы используете для этого инверсию контроля?
Вы можете использовать Castle Windsor для этого.Допустим, у вас есть 4 формы для загрузки во время выполнения, поэтому вы можете создать 4 компонента класса Form, для которых их реализация представляет собой 4 формы для загрузки в течение жизненного цикла вашей программы.
КакПредварительная загрузка с этим подходом?Вы просто разрешаете все зависимости / компоненты, относящиеся к типу формы, и получаете его:
container.ResolveAll<Form>();
Позже вы получите конкретную форму:
container.Resolve<Form>("CustomersForm"); // Just an example
Если вы этого не сделаетезнай инверсию управления, комментируй и я тебе помогу, без проблем!:)