2009-10-07 12 views
5

Ho alcuni controlli personalizzati creati come progetti Controlli server. Ho apportato alcune modifiche, quindi ho semplicemente aggiunto le classi a un progetto di applicazione Web esistente in modo da avere le cose nello stesso posto. Questo progetto di app Web è compilato in una DLL che viene utilizzata su diversi progetti web.Controllo personalizzato in un progetto di applicazione Web .net

Quando costruisco il progetto web app e inserire la DLL nel bidone di un sito web diverso, quando vado a utilizzare il controllo ottengo il seguente errore:

sconosciuta tag server 'CustomControls: RadioButtonListForGrid'

Se aggiungo le classi di controllo personalizzate alla cartella app_code del mio sito Web, funziona correttamente. Ho usato il browser degli oggetti e ho confermato che queste classi sono nella DLL.

Mi manca qualcosa di ovvio qui? Devo lasciarli come progetti di controllo server e combinare le dll usando ILmerge?

EDIT

scopre che avevo bisogno di aggiungere il nome di montaggio. Si scopre anche che l'assemblea non è stata nominata come pensavo. Suppongo che dovrei controllarlo. Ops.

+0

Quindi qual era il nome dell'assemblea ?? Qual era lo schema di denominazione? – Matt

+0

Vedere il mio commento qui sotto, sulla risposta accettata. – ScottE

risposta

4

Hai aggiunto il prefisso del tag a web.config?

<pages> 
    <controls> 
    <add tagPrefix="CustomControls" namespace="MyApp.CustomControls" ... 
+0

Sì. Anche provato a livello di pagina. La stessa configurazione di web.config funziona con le classi nella cartella app_code, ma non è stata compilata nella dll. – ScottE

+0

Dai un'occhiata a http://www.paraesthesia.com/archive/2007/08/02/generation-of-designer-file-failed-unknown-server-tag.aspx. –

+0

@Robert Harvey - Ho provato con e senza l'assembly, in tutte le permutazioni – ScottE

2

posso confermarlo, aggiungendo il nome di assemblaggio in cantiere direttiva Register! Quindi è un must anche se è lo stesso assembly.