2008-11-21 5 views
14

Non riesco a creare la mia applicazione Web (non il sito Web) nel nostro ambiente di costruzione. Usiamo DMAKE nel nostro ambiente di build (questo purtroppo non è negoziabile, quindi l'utilizzo di MSBUILD non è consentito) e quando si richiama il precompilatore asp.net tramiteaspnet_compiler ASPParse Impossibile caricare il tipo

C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_compiler -d -p -nologo sito -f -fixednames -errorstack -v/Debug

otteniamo il seguente errore

errore ASPPARSE: Impossibile caricare il tipo 'XYAdmin.Site.Global

Se io compilare dall'ide ha successo. Se poi compilo con aspnet_compilier, ha successo. Quindi ottengo una compilazione di successo con aspnet_compiler solo quando la dll di destinazione che sto cercando di compilare è nel cestino dell'applicazione web che sto compilando.

Continuo a imbattermi in post che parlano di soluzioni utilizzando MSBUILD che purtroppo non posso provare.

Qualsiasi aiuto sarebbe apprezzato

risposta

0

Per le applicazioni Web, è necessario creare i file vb in una DLL e mettere che nella cartella bin prima di eseguire il compilatore aspnet. Controlla la finestra di output in Visual Studio e vedrai la riga di comando per il compilatore VB. Eseguilo prima di eseguire il compilatore di aspnet e le pagine di asp dovrebbero essere in grado di trovare i tipi mancanti.

4

Ho riscontrato un problema simile con NANT. Il trucco consisteva nel compilare i file di codice delle applicazioni Web in una DLL, includendoli quando si utilizza aspnet_compiler.

utilizzare il compilatore della riga di comando, csc.exe (C#) o vbc.exe (visual basic), per compilare la propria applicazione Web con un'uscita di libreria dei tipi. Ciò creerà una DLL che è possibile utilizzare nell'attività aspnet_compiler

+0

Ho avuto l'impressione errata che anche aspnet_compiler abbia compilato l'applicazione Web e creato la dll. (le parole asp e compilatore mi hanno fatto pensare a questo!) – AndyM

+0

+1 per questa risposta, ha funzionato anche per me (grazie al cielo!). Cosa mai abbiamo fatto prima di StackOverflow? :-) – gerrod

+0

@gerrod, sto uscendo con me e forse la tua domanda era retorica, ma avevamo Google Gruppi, e prima avevamo Bulletin Boards e Forum e UseNet. E 'stato bello, perché nessuno è stato valutato (era solo la pressione dei coetanei), ma era nei bei tempi in cui c'erano molte meno persone che programmavano. :) Non fraintendetemi, SO ha i suoi buoni punti. – clairestreb

0

Ho ricevuto lo stesso problema.

L'ho risolto copiando la DLL del mio webapp dalla cartella OBJ/DEBUG alla cartella BIN.

13

abbiamo avuto lo stesso problema sulla nostra applicazione web: errore ASPPARSE: Impossibile caricare il tipo '...'

Il problema è che abbiamo avuto il file su disco (sulla cartella del progetto), ma non è stato incluso nel nostro progetto di applicazione (nel file .csproj). Abbiamo risolto il problema includendo il file nel progetto :)

0

Ho appena avuto questo errore e abbiamo trovato 2 modi per risolvere il problema, sia:

  • Modificare l'attributo CodeBehind nel file Global.asax per CodeFile e aggiungere "parziale" per la dichiarazione di classe
  • Nella pagine di proprietà del progetto di distribuzione, impostare "assiemi di uscita della versione" e fornire un numero di versione

io in realtà non so perché sia ​​funzionato, ma lo ha fatto.

0

soluzione:

-p percorso del sito deve avere il percorso della directory di csproj posizione del file.

es: -

aspnet_compiler -p D:\Projects\MGM\mgm\mgm -v/D:\Projects\MGM-deploy\mgm_compiled 
1

Questo problema è stato risolto per me, semplicemente cancellando tutti bin e obj cartelle. Sembra che fossero in cattivo stato in qualche modo. Ho anche cancellato il file .sou, ma non penso che fosse il problema.