2008-11-21 13 views
14

Ich kann meine Webanwendung (keine Website) in unserer Build-Umgebung nicht erstellen. Wir verwenden DMAKE in unserer Build-Umgebung (dies ist leider nicht verhandelbar, daher ist die Verwendung von MSBUILD nicht erlaubt) und beim Aufrufen des asp.net-Precompilers überaspnet_compiler ASPParse konnte nicht geladen werden Typ

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

Wir erhalten die folgende Fehler

Fehler ASPPARSE: Typ konnte nicht ‚XYAdmin.Site.Global

Wenn ich laden kompilieren aus der ide es ist erfolgreich. Wenn ich dann mit aspnet_compilier kompilieren, ist es erfolgreich. So bekomme ich nur eine erfolgreiche Kompilierung mit aspnet_compiler, wenn die Ziel-DLL, die ich zu kompilieren versuche, in der Bin der Webanwendung ist, die ich kompiliere.

Ich laufe weiter in Beiträge, die über Lösungen mit MSBUILD sprechen, die ich leider nicht versuchen kann.

Jede Hilfe wäre

Antwort

0

Für Web-Anwendungen, haben Sie die .vb-Dateien in eine DLL erstellen und diesen Ordner in den Papierkorb legen, bevor Sie den aspnet Compiler laufen. Überprüfen Sie das Ausgabefenster in Visual Studio und Sie sehen die Befehlszeile für den VB-Compiler. Führen Sie das zuerst aus, bevor Sie den Aspnet-Compiler ausführen, und die ASP-Seiten sollten in der Lage sein, die fehlenden Typen zu finden.

4

Ich stieß auf ein ähnliches Problem mit NANT. Der Trick bestand darin, die Code-Dateien der Web-Anwendungen in eine DLL zu kompilieren und dann bei der Verwendung von aspnet_compiler einzuschließen.

Verwenden Sie den Befehlszeilencompiler csc.exe (C#) oder vbc.exe (Visual Basic), um Ihre Webanwendung mit einer Ausgabe der Typbibliothek zu kompilieren. Dies wird eine DLL erstellen, die Sie in Ihrer aspnet_compiler-Task verwenden können

+0

Ich war unter dem falschen Eindruck, dass aspnet_compiler auch die Webanwendung kompiliert und erstellt die DLL. (Die Wörter ASP und Compiler haben mich dazu gebracht, dies zu denken!) – AndyM

+0

+1 für diese Antwort, es funktionierte auch für mich (Gott sei Dank!). Was in aller Welt haben wir vor StackOverflow gemacht? :-) – gerrod

+0

@gerrod, Ich bin mit mir selbst verabredet und vielleicht war deine Frage rhetorisch, aber wir hatten Google Groups, und davor hatten wir Bulletin Boards und Foren und UseNet. Es war großartig, weil niemand bewertet wurde (es war hauptsächlich nur Gruppenzwang), aber das war in den guten alten Tagen, als es viel weniger Leute gab, die programmieren. :) Versteh mich nicht falsch, SO hat seine guten Punkte. – clairestreb

0

Ich erhielt das gleiche Problem.

Ich reparierte es, indem ich die DLL meiner webapp aus dem OBJ/DEBUG-Ordner in den BIN-Ordner kopierte.

13

Wir hatten das gleiche Problem auf unserer Web-Anwendung: Fehler ASPPARSE: Typ konnte nicht geladen werden ‚...‘

Das Problem war, dass wir die Datei auf der Festplatte (auf dem Projektordner) hatte aber Es war nicht in unserem Anwendungsprojekt enthalten (in der .csproj-Datei). Wir lösten das Problem, indem Sie die Datei im Projekt einschließlich :)

0

ich diesen Fehler nur hatte und fanden zwei Möglichkeiten, es zu beheben, entweder:

  • ändern Sie das Codebehind-Attribut in der Datei global.asax zu Codefile und fügen sie „teilweise“ in die Klassendeklaration
  • auf den Eigenschaftenseiten des Bereitstellungsprojekt, stellen sie „Version Ausgabe-Baugruppen“ und bieten eine Versionsnummer

ich weiß wirklich nicht, warum entweder gearbeitet, aber es tat.

0

Lösung:

-p Site-Pfad muss den Verzeichnispfad der CSPROJ Speicherort der Datei haben.

ex: -

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

Dieses Problem für mich einfach gelöst wurde, indem alle bin und obj Ordner zu löschen. Scheint, als wären sie irgendwie in einem schlechten Zustand. Ich habe auch die .sou Datei gelöscht, aber ich glaube nicht, dass das das Problem war.

Verwandte Themen