it-swarm.com.de

Msgstr "Typ [Namespace] .Global" konnte nicht geladen werden, was zu Trauer führte

In meiner .Net 2.0 Asp.net WebForms-App habe ich meine Global.asax mit folgendem Code:

<%@ Application CodeBehind="Global.asax.cs" Inherits="MyNamespace.Global" Language="C#" %>

Wenn ich aber baue, bekomme ich eine Fehlermeldung

Typ "MyNamespace.Global" konnte nicht geladen werden.

Dies scheint darauf zurückzuführen zu sein, dass der Namespace MyNamespace (der im Code hinter der Datei Global.asax.cs definiert ist) vom Compiler nicht in der Datei Global.asax angezeigt wird (wird nicht in R # intellisence .. angezeigt) herauszufinden, eine sehr harte Nuss zu knacken ... jede Hilfe wird geschätzt!

Hinweis: Global.asax und Global.asax.cs befinden sich im selben Ordner.

Hinweis2: Beim Kompilieren aus dem vs Prompt mit csc wird o.k kompiliert. 

102
gkdm

Eine Situation, die dieses Problem verursacht hat, ist die Angabe der Plattform für einen Build über "Build Configuration". 

Wenn Sie x86 als Build-Plattform angeben, weist visual studio automatisch bin/x86/Debug als Ausgabeverzeichnis für dieses Projekt zu. Dies gilt vollkommen für andere Projekttypen, mit Ausnahme von Webanwendungen, bei denen ASP.NET erwartet, dass die Assemblys im Ordner Bin ausgegeben werden. 

In meiner Situation fand ich heraus, dass sie an beide ausgegeben wurden (Bin und Bin/x86/Debug), mit der Ausnahme, dass einige der DLLs und unerklärlicherweise die wichtigste ist, dass Ihre Webanwendungs-DLL im Bin fehlt Mappe.

Dies verursachte offensichtlich ein Kompilierungsproblem und daher die Ausnahme "Typ Global konnte nicht geladen werden". Das Säubern der Lösung und das Löschen der Baugruppen hatten keinen Einfluss auf nachfolgende Builds. Meine Lösung bestand darin, einfach den Ausgabepfad in den Projekteinstellungen für die Web-App in Bin zu ändern (anstatt in bin/x86/Debug). 

157
stantona

Haben Sie den Namensraum Ihres Projekts geändert? Ich habe gesehen, dass dies gelegentlich vorkam, wenn ich den Namespace im Dialogfeld Projekteigenschaften geändert habe, aber Visual Studio die Deklaration namespace in vorhandenen Codedateien nicht geändert hat.

16
PhilPursglove

Ich bin ein Neuling in der Asp. Net-Entwicklung, und ich hatte ein ähnliches Problem.

Ich habe die Klasse als partial-Klasse aktualisiert und es hat gut funktioniert.

public partial class Global : System.Web.HttpApplication
14
sri

Ich habe Visual Studio neu gestartet und der Fehler war weg!

9
Manoj Attal

Hier ist noch eine für die Bücher. Es scheint, dass dies passiert, wenn Sie mehr als eine Webanwendung von derselben Portnummer starten.

Grundsätzlich habe ich ein paar Filialen, an denen ich arbeite, ich habe einen Hauptzweig, einen Staging-Zweig und einen Release-Zweig. Als ich vom Zweig zum Staging-Zweig wechselte, fiel mir auf, dass er dieselbe Port-Adresskonfiguration verwendete. Daher habe ich mich für die Änderung entschieden. Ich erhielt dann eine weitere Warnung, dass diese Reservierung mit einer anderen konfigurierten Anwendung in Konflikt steht. Der IIS Express-Server reagiert darauf und aus welchem ​​Grund auch immer er die Konfiguration erstellt.

Durch die Auswahl eines dritten nicht betroffenen Ports ist dieses Problem behoben, da der Port dann einer neuen Verzeichniszuordnung zugeordnet wird (meine Zweige befinden sich auf der Festplatte anders). Ich bemerkte dies, weil ich versuchte, den Typnamen, auf den Global.asax zeigt, zu ändern, der Typname jedoch selbst nach dem Neustart des Servers nicht geändert wurde. Daher wurde der von mir geänderte Code nicht in der Express-Bereitstellung IIS widergespiegelt .

Bevor Sie dabei zu viel Schlaf verlieren, sollten Sie die IIS Portnummer ändern, die derzeit zum Ausführen des Webprojekts verwendet wird.

4
John Leidegren
  1. Klicken Sie mit der rechten Maustaste auf Project Solution und wählen Sie Batch Build aus.
  2. Wählen Sie dann Ihren Projektnamen und Reinigen und Wiederherstellen.

Funktioniert gut für mich IN 2015.Jetzt kann ich ein globales Ereignis verwenden. Meine Global.asax-Datei hat diese Zeile

<%@ Application Language="C#" CodeBehind="~/App_Code/Global.asax.cs" Inherits="Global" %>

Und ich mache die Klassendatei Global.asax.cs, die sich im AppCode-Ordner befindet, der so aussieht

public partial class Global : HttpApplication
{
    public Global()
    {
        //
        // TODO: Add constructor logic here
        //
    }
}

Ich hoffe das wird helfen

4
parimal

In meiner Situation war dies mit dem Typ der Website/Webanwendung des Projekts verbunden. Wir sind vor kurzem zu MVC gewechselt und mussten es in Web Application ändern.

Die Lösung war also einfach: Wählen Sie Ihre Website im Projektmappen-Explorer aus und entfernen Sie sie aus der Projektmappe. Klicken Sie dann mit der rechten Maustaste auf die Projektmappe und wählen Sie Hinzufügen -> Vorhandenes Projekt ( nicht Website ) .

2
Sergey

Alter Post, aber ich gehe diesen Fehler, wenn ich versuche, von einem Website-Projekt in ein Webanwendungsprojekt zu konvertieren.

Folgen Sie den Anweisungen auf diesem Link . Ich habe immer noch den global.asax-Fehler erhalten, aber alles, was ich tat, war, es zu löschen und erneut hinzuzufügen, indem Sie mit der rechten Maustaste auf das Projekt in Visual Studio klicken und "Neues Element hinzufügen" auswählen. Fügen Sie die Datei global.asax hinzu und es hat funktioniert.

2
mjroodt

Ich hatte meine Lösung von VS2003 auf VS2010 konvertiert und hatte Probleme beim Konvertieren des Webanwendungsprojekts.

Ich habe genau das gleiche Problem erlebt und keine der Antworten hat für mich funktioniert.

Was für mich funktioniert hat war:

  • Klicken Sie mit der rechten Maustaste auf die Lösung und wählen Sie Configuration Manager aus
  • Sehen Sie sich jede der Konfigurationen in der Dropdown-Liste "Konfiguration der aktiven Lösung" an.
  • Fügen Sie die Webanwendung in den Build ein, indem Sie das Kontrollkästchen "Build" markieren.

es scheint, als hätten die Probleme, die ich während der Konvertierung hatte, das Webanwendungsprojekt aus irgendeinem Grund aus dem Build entfernt.

Hoffentlich hilft diese Antwort allen anderen, die das gleiche Problem haben ...

2
mezoid

Überprüfen Sie die Build-Aktion von Global.asax.cs. Es sollte auf Compile gesetzt sein.

Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Global.asax.cs, und wechseln Sie zu Eigenschaften. Legen Sie im Eigenschaftenbereich die Build-Aktion fest (während nicht debugging).

Es scheint, dass VS 2008 die .asax-Dateien (.cs) standardmäßig nicht immer korrekt hinzufügt.

2
apollodude217

Ich habe einen ähnlichen Fehler bei einem 

<clear/>

tag als Kind (das erste Kind) der 

<assemblies>

tag in meiner Web.config . Ich hatte die Tags in meine web.config eingefügt, um die Konfigurationsvererbung in einer Anwendung zu verhindern, die unter der 'Standardwebsite' in IIS bereitgestellt wird.

2
jasonjonesutah

Diese Arbeit für mich: Als erstes: Es scheint, dass egal was Sie zu Visual Studio gesagt haben, die Datei immer in: bin (für Web-App und in meinem Fall natürlich) So, auch wenn ich es gesagt habe Um Visual Studio einen bestimmten Pfad zum Laden der Datei zu geben, suchen Sie immer nach dem falschen Pfad. Also ändere ich in: Build/Configuration Manager den Ausgabetyp in: Release (vorheriges bereinigen der Lösung, sogar manuell), so dass ich, als die Datei .dll erstellt wurde, manuell in den "bin" Ordner unter dem Projekt/der Lösung verschoben wurde Mappe. Hoffe das wird hilfreich sein !!

1
galimatias

Nichts davon funktionierte leider für mich. Das Update, das ich gefunden habe, war spezifischer für die Entwicklung, insbesondere für das Debugging auf Ihrem lokalen Computer. Leider behebt es das Problem leider nicht so, wie ich es mir erhofft hatte, aber wenn Sie am Ende Ihres Verstandes sind, könnte dies Sie wieder zum Laufen bringen. 

TL; DR: Wählen Sie in den Projekteigenschaften auf der Registerkarte Web unter Server die Option Use Local IIS Web Server aus. Die Adresse, 

http://localhost/MyApp" 

war bereits besetzt (ich habe IIS7, .NET 4.0). Was ursprünglich ausgewählt wurde, war "Visual Studio Development Server verwenden" mit dem virtuellen Pfad "/".

Was mich wirklich verwirrt, ist die Tatsache, dass nichts anderes funktionierte. Ich ging alle Vorschläge durch, die ich zu SO finden konnte, und nichts würde funktionieren. Das Merkwürdige ist, der Fehler war (scheinbar war es einige Monate her, seit ich das letzte Mal angeschaut habe), als ich eine neue Ascx-Datei hinzufügte, die einer vorhandenen ähnelte, die aus einem alten .net 2.0-Projekt (glaube ich) hinzugefügt wurde Dies würde eine benutzerdefinierte Benutzerverwaltung innerhalb der Anwendung ermöglichen. Es hat wunderbar lange funktioniert, bis ich versucht habe, diese neue Datei hinzuzufügen. Nachdem ich es hinzugefügt und den Fehler gesehen hatte, habe ich alle Änderungen sofort rückgängig gemacht, aber der Global.ascx-Fehler würde nicht verschwinden, nicht einmal das gesamte Projekt wegblasen und die neuesten Informationen von der Quellcodeverwaltung erhalten. 

1
BrDaHa

Wenn Sie ein Projekt neu erstellen oder ändern und Dateien von einem alten verschieben, müssen Sie den Inherit-Block Ihres globalen Objekts überprüfen. In meinem Fall hieß das frühere Projekt/Lösung Intranet, und ich hatte es als Intranet neu erstellt, aber als ich die Dateien verschoben habe, mochte es nicht die Kleinbuchstaben (duh). Machen Sie einfach einen allgemeinen Überblick über die Namen der Dateien.

1
archangel76

In meinem Fall habe ich es wegen meines Zielprozessors (x64) in x86 geändert, das Projekt gereinigt, VS (2012) neu gestartet und das Projekt neu erstellt. dann war es weg.

1
notmrkyle

Ändern Sie die GUID der Assembly. Dies behebt viele VIELE Probleme, die ich gefunden habe. 

1
Nathan M

Ich hatte ein ähnliches Problem, bei dem ich diesen Fehler in einem Projekt erhielt. 

“Could not load type [Namespace].Global
Error in Line 1   etc etc

Nach einiger Zeit vermute ich, dass eine Funktion mit möglichen Fehlern in einer Klasse .. diese spezifische Funktion kommentiert, mein Problem gelöst.

Ich weiß nicht, warum Visual Studio mir diesen spezifischen Fehler beim Debuggen nicht gegeben hat. Dieser Fehler kann jedoch aufgrund einiger Fehler in der Klassendatei auftreten.

1
panky sharma

Als ich dieses Problem zuletzt traf, versuchte ich alles, was hier erwähnt wurde, aber ohne Erfolg. Nachdem ich mir die Haare aus dem Haar gerissen hatte, beschloss ich, meine gesamte -Codebasis zu löschen (ja, ziemlich verzweifelt!) Und dann alles aus meinem Code-Repository erneut heruntergeladen. Danach hat alles wieder gut funktioniert.

Scheint eine extreme Lösung zu sein, dachte aber, ich würde es hier einschließen, da es in diesem Thread noch nicht erwähnt wurde.

(Beachten Sie, dass ich zum anderen Mal auf dieses Problem gestoßen bin, als Global.asax von einer Komponente erbt, die auf dem Host-Computer registriert werden muss. Dies fehlte, daher bekam ich dieses Problem.).

TL; DR; Wenn alle Antworten in diesem Thread nicht für Sie funktionieren, versuchen Sie, Ihre gesamte Codebasis zu löschen und dann erneut herunterzuladen!

1
Ben Smith

In meinem Fall hatte ich Global.asax zu einem WCF-Projekt hinzugefügt, um damit zu experimentieren, entschied mich jedoch, es zu entfernen. Ich habe es aus dem Projektmappen-Explorer entfernt, aber da es sich immer noch im Ordner befand, fand die Pipeline es immer noch und verursachte diesen Fehler.

Ich habe Global.ASAX und GLobal.asax.cs aus dem Dateisystem entfernt und der Fehler wurde behoben.

1
Beans

Ich bin ein paar Mal auf dieses Problem gestoßen und in jedem Fall habe ich einen Computer neu aufgebaut oder auf einen neuen Computer umgestellt. Mein erster Schritt (neben der Aktualisierung des Computers und der Installation von Visual Studio) besteht darin, meine Projekte von Git herunterzuziehen und sie zu testen.

Ich habe diesen Fehler jedes Mal getroffen, weil ich vor dem Kompilieren versucht habe, auf meinen lokalen Code zuzugreifen. Sie sehen, ich habe Git und Subversion eingerichtet, um meine Bin/Build-Ordner zu ignorieren. Nach einem Abruf aus meinem Repository habe ich vergessen, einen Build auszuführen, der die erforderlichen Pakete von Nuget abruft (da Git/SVN diese ebenfalls ignoriert) und erstellt DLLs benötigt, um meine App tatsächlich auszuführen.

Ich bezweifle, dass dies die Probleme der meisten Menschen lösen wird, aber ich habe es nicht auf der Liste der möglichen Lösungen gesehen, also dachte ich, ich würde es hinzufügen.

1
Capt. Rochefort

Ich habe versucht, die Lösung neu zu erstellen und temporäre ASP.NET-Dateien ohne Erfolg zu löschen.
Aber nach dem Ausführen von IISRESET verschwand der Fehler. 

Update: Ich hatte das gleiche Problem 1 Monat später erneut. Ich habe festgestellt, dass MyWebsite.DLL im Ordner bin vorhanden ist, aber nicht in temporären ASP.NET-Dateien (C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporäre ASP.NET-Dateien) ..__ vorhanden ist. Ich habe ein paar Dinge ausprobiert, die hier vorgeschlagen werden und "Parser-Fehlermeldung: Typ konnte nicht geladen werden" in Global.asax questions (ich habe meine eigene Antwort tatsächlich vergessen), aber der Fehler verschwand erst wieder danach IISRESET 

0

gehen Sie zu Configuration Manager unter Eigenschaften für Ihre Lösung. Dann stellen Sie sicher, dass alle Projekte erstellt und erstellt werden, und dies ist kein Problem.

0
Matthew Hart

Ich bin seit fast 20 Jahren im Entwicklungsspiel und hat mich bei mehreren Projekten immer wieder geplagt.

Als ich heute dieses gleiche Problem erneut gegen ein anderes Projekt erlebte, habe ich mich entschlossen, weiter zu untersuchen, und ich glaube, dass dies mit dem Speicherort des Bin-Ordners zusammenhängt ... oder genauer gesagt, dem Ausgabepfad des Bin-Ordners.

Bei einer einfachen, auf Diensten basierenden Webanwendung, die für die Ausführung von/debuggen über IIS konfiguriert ist, wurde für mich der Ausgabepfad von bin\debug in bin\geändert, wodurch er aufgelöst wurde 

Projekt> Eigenschaften> Erstellen> Ausgabepfad

Ich hoffe sehr, dass dies hilft.

0
timkly

Dieses Problem hatte ich nur bei der Bereitstellung auf einem Prod-Server. In meinen anderen Umgebungen funktioniert es ... Ich habe einfach Sachen im Ordner bin gelöscht, dann erneut veröffentlichen und danach funktioniert es.

0
Raphael

Ich war vom gleichen verflixten Thema verwirrt. Ich habe versucht, und und den global.asax (geschlossen VS2010 vor dem Hinzufügen) zu entfernen. Das Projekt/die Lösung wurde gesäubert und auf Änderungen in der Webanwendungskonfiguration und auf andere Dinge überprüft, die bei anderen Benutzern in SO -Threads funktioniert hatten. Schließlich habe ich die Lösung gesäubert, die Ordner bin/obj gelöscht und alle laufenden VS2010-Entwicklungsserver gestoppt. Danach habe ich alle Änderungen rückgängig gemacht und festgestellt, dass die Anwendung erneut ausgeführt wurde. Ich habe die gleichen Dinge noch einmal geändert und jetzt funktioniert es gut.

Ist wieder passiert und diesmal diese Lösung hat für mich funktioniert.

0
rageit

Dieses Problem ist aufgetreten, als ich versehentlich "Chrome" als Standardbrowser für das Debugging festgelegt habe. Wenn ich es wieder auf "IE" stelle, ist das Problem verschwunden. Ich weiß nicht warum ... 


EDIT: Ich wollte diese Antwort gerade löschen, weil ich nicht sicher war, aber dann hatte ich wieder das Problem. Ich habe mit Chrome gewechselt, dann wieder zurück zu IE und es hörte auf! Was gibt!? 

0
Fedor Steeman

Ich wollte nur meine zwei Cent hinzufügen. Ich erhielt die gleiche Fehlermeldung und versuchte alle Vorschläge ohne Erfolg. Meine Situation ist wahrscheinlich anders?

Es stellte sich heraus, dass eine automatisch generierte "AssemblyInfo.cs" -Datei einige Leerzeichen enthielt, was mich daran hinderte, die Web-App (über Debug) zu starten. So sah die Datei aus:

[Assembly: AssemblyTitle("WebApplication2")]
[Assembly: AssemblyDescription("")]
[Assembly: AssemblyConfiguration("")]
[Assembly: AssemblyCompany("

            ")]
[Assembly: AssemblyProduct("WebApplication2")]
[Assembly: AssemblyCopyright("Copyright © 

             2017")]
[Assembly: AssemblyTrademark("")]
[Assembly: AssemblyCulture("")]

Nachdem ich die Flächen in AssemblyCompany und AssemblyCopyright getötet hatte, konnte ich schließlich das Projekt erstellen und starten.

In der folgenden Umgebung beobachtet: -- Visual Studio 2017 Community-Version 15.3.0 -- Win 7 x64 Enterprise -- Neues Projekt> Visual C #> Web> ASP.NET-Webanwendung> Web Forms

0
raydlevel5

in meinem Fall war es IISExpress, der auf den gleichen Port zeigte wie IIS 

C:\Users\Your-User-Name\Documents\IISExpress\config\applicationhost.config

wenn Sie nach dem Port suchen, finden Sie das <site>...</site>-Tag, das Sie entfernen oder kommentieren müssen

0
Mo Hrad A

In meinem Fall VS 2017 verursachte die Last der leichten Lösung dieses Problem. Ich habe es deaktiviert und VS neu gestartet, dann meine Lösung neu aufgebaut und das Problem ist verschwunden.

0
Siddharth Kumar

Wenn Sie Visual Studio verwenden, versuchen Sie wahrscheinlich, die Anwendung im Freigabemodus auszuführen. Versuchen Sie, sie in den Debug-Modus zu ändern.

0
sham

Ich musste (doppelte) Dateien von der Festplatte löschen, die nicht im Projekt enthalten waren. Sieht aus wie die Duplikate durch eine fehlgeschlagene Umbenennung verursacht wurden. Die Dateinamen waren unterschiedlich, aber derselbe Code.

Nachdem ich alle oof. * -Dateien gelöscht hatte, konnte ich scannen. 

  • foo.aspx
  • foo.aspx.cs
  • foo.aspx.designer.cs
  • oof.aspx
  • oof.aspx.cs
  • oof.aspx.designer.cs
0
Eric Rohlfs

So dumm wie es klingen mag. Hier ist was ich getan habe ..

Mein Projekt zielte auf Version 4.6.1 ab .. Die Zielversion wurde auf 4.6.2 geändert. baute es. Obj & Bin-Ordner gelöscht. & änderte erneut die Version auf 4.6.1. Bingo!!

0