Even though an assembly output has been declared, it does not imply that you must create an output. Not constructing an output indicates the output is not required. Additionally, if an output already exists you can remove the output:
If m_oPierAssemblyOutput.Output Is Nothing Then
m_oPierAssemblyOutput.Delete()
End If
Now using this code, the output no longer exists. When the evaluation method is invoked again, you can decide whether to construct the output again.