ho il seguente scenario:Errore in controlli utente caricate dinamicamente che fanno riferimento a altri controlli in diverse directory
La mia struttura di directory è:
- ./Pages/Page.aspx
- ./RedControls /RedControl.ascx
- ./BlueControls/BlueControl.ascx
Page.aspx.cs crea dinamicamente RedControl:
RedControls_RedControl C = (RedControls_RedControl)Page.LoadControl("~/RedControls/RedControl.ascx");
RedControl.ascx utilizza BlueControl:
<uc:BlueControl runat="server" ID="ctrControl" />
Questa grande opera in modalità di sviluppo, tuttavia quando schiero, ottengo:
Tipo di eccezione - HttpParseException - La base la classe include il campo 'ctrControl', ma il suo tipo (BlueControls_BlueControl) non è compatibile con il tipo di controllo (ASP.BlueControls_BlueControl_ascx).
Se sposto RedControl e BlueControl nella stessa directory, funziona correttamente quando viene distribuito.
Come posso farlo funzionare senza dover spostare i file in una singola directory (abbiamo troppe istanze di questo).
Qualsiasi intuizione sarebbe molto apprezzata.
Esistono forse vecchie versioni di file ASCX o DLL distribuiti? Il fatto che il tipo non sia compatibile indica a me che sta caricando il tipo da una fonte inaspettata. – Jacob
No, non ci sono versioni precedenti distribuite. Installazione fresca – Jack
hai provato a utilizzare ".." invece di "~" come "LoadControl (" ../ RedControls/RedControl.ascx "); – Akhil