It's not that there is no a "way"; there is no such concept as "register the assembly at runtime". The assembly is not "registered", it is referenced, and the result of referencing goes to compilation.
I have no idea why did you decide "assembly have to be loaded after app start". Most likely, this is just you fantasy, but if you explain it, I'm ready to discuss it. Again, "the BuildManager does not support it" is a totally wrong idea. There is nothing to "support"; the whole concept does not exist, or, more exactly, this is a misconception.
During runtime, you can load any compatible assembly. To understand how it works, please read the documentation on
System.Reflection.Assembly
:
https://msdn.microsoft.com/en-us/library/system.reflection.assembly%28v=vs.110%29.aspx[
^].
Pay attention for all the
Assembly.*Load*
methods.
However, when you load the assembly, what you are going to do with it? In all cases, you would need to further use reflection. I could explain it if I knew your purpose. To get basic idea, you can see my past answers:
Dynamically Load User Controls[
^],
C# Reflection InvokeMember on existing instance[
^],
Gathering types from assemblies by it's string representation[
^],
Access a custom object that resides in plug in dll[
^].
—SA