Vedendo i nomi che hai usato per i file aspx e vb mi sembra che assomiglino a quelli che mette Chris Payne nel libro ASP.NET Guida completa.
Se il libro è quello(E ripeto se)ho notato delle incongruenze fra quello che scrive l'autore e la documentazione dell' SDK(Quindi esempi funzionanti)
(1) E' il primo file.vb che utilizzi oppure ne hai già fatti altri funzionanti?
(2) Che versione utilizzi del Framework?
Scusa le domande banali ma delle volte a me succede che per problemi insignificanti mi pianto in modo clamoroso.
Io metto i file vb nella cartella bin che a sua volta è nella directory principale.
Prova questo, è una parte di un mio assembly:CONTROLLI.VB

Option Explicit
Option Strict

Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace Alex

Public Class Pulsante
Inherits Button
Protected Overrides Sub AddAttributesToRender(writer As HtmlTextWriter)
MyBase.AddAttributesToRender(writer)
writer.AddAttribute("onClick", "alert('ATTENZIONE!! I dati saranno rimossi definitivamente.');")
End Sub
End Class

End Namespace

Compilalo con questo comando(Se il file lo metti in bin)
vbc /reference:System.dll,System.Web.dll /t:library /out:Controlli.dll Controlli.vb

Questo è il mini file.aspx che utilizza la classe:
<%@ Register TagPrefix="Custom" Namespace="Alex" Assembly = "Controlli" %>
<html><body>
<form runat=server>
<Custom:Pulsante Id = "Button" text = "OCCHIO!!!" runat = "server"/>
</form>
</body></html>
Prova questo e vedi se funziona.
Ciao
Legnetto