.NET 4.0-Anwendung löst die Ausnahme auf einem Computer ohne Visual Studio
Meine Anwendung funktioniert auf allen Computern hier, auf dem Visual Studio installiert, aber es funktioniert nicht auf dem Computer, die keine Visual Studio.
Die Anwendung nur Abstürze beim starten mit dieser Meldung in der Ereignisanzeige:
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.TypeInitializationException
Stack:
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(System.String[])
at IssueTrackingSystem.My.MyApplication.Main(System.String[])
Getestet habe ich eine einfache Anwendung mit nur einer Taste, die gleiche Ergebnisse.
UPDATE:
Tun die Ziel-Maschinen haben .NET 4 installiert?
Hinzufügen eines
Auch, stellen Sie sicher, dass der Ziel-Computer hat die vollen .NET 4, nicht nur die ".NET 4 Client Profile," wenn Ihre Anwendung braucht.
Wie stellen Sie die Anwendung auf den Computer, der nicht über VS?
Ich habe gerade die exe-Datei kopieren.
Hinzufügen eines
catch
block und prüfen Sie die InnerException
.Auch, stellen Sie sicher, dass der Ziel-Computer hat die vollen .NET 4, nicht nur die ".NET 4 Client Profile," wenn Ihre Anwendung braucht.
Wie stellen Sie die Anwendung auf den Computer, der nicht über VS?
Ich habe gerade die exe-Datei kopieren.
InformationsquelleAutor Ezi | 2011-06-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Sie brauchen, um die Ausnahme InnerException, um wirklich zu wissen, was falsch läuft. Projekt + Eigenschaften, Anwendung Registerkarte, klicken Sie auf die "Anwendung Anzeigen" Schaltfläche Ereignisse. In der oberen linken combobox über dem editor-Fenster wählen Sie "(MyApplication-Ereignisse)", in der rechten combobox wählen Sie "Start".
Fügt hinzu, dass die Startup-event-handler. Machen Sie es etwa wie folgt Aussehen:
Wirst du jetzt bekommen, einen stack-trace, enthält die innere Ausnahme. Das sollte gut genug sein, zu finden, der statische Konstruktor, der Bomben. Poste den StackTrace sehen Sie in Ihrer Frage wenn das nicht hilft.
Schaut mir zu, dass Sie nicht die Bereitstellung der richtigen version des DevExpress-Komponenten, die Sie verwenden.
InformationsquelleAutor Hans Passant
Einen
System.TypeInitializationException
wird geworfen, wenn ein Konstruktor, der für jede Art wirft eine exception, die nicht abgefangen und entsprechend behandelt. Statische Initialisierung der Felder werfen auch diese Ausnahme. Sie müssen bestimmen, welche Art es ist-und debug-entsprechend. Wahrscheinlich, wie die anderen Poster gesagt haben, Sie don ' T haben etwas konfiguriert/implementiert auf der Ziel-Maschine.Habe ich gesehen, dass dies geschieht beim ersten Zugriff auf die config-Datei-Einträge, die nicht existieren, wenn die Bibliotheken nicht vorhanden sind, etc. Bis Sie die detaillierte Ausnahme (Sie sollten in der Lage sein, zu prüfen, die innere Ausnahme), wird es schwieriger werden, zu verengen.
UPDATE:
Versuchen, diese in Ihre app.config, da der Artikel in der Fehlermeldung vorgeschlagen:
InformationsquelleAutor Dave Ferguson
Sollten Sie überprüfen die .NET-version auf dem Clientcomputer installiert ist.
Überprüfen Sie auch alle referenzierten Assemblys, und wenn es etwas ungewöhnlich ist, fügen Sie die
.bin
OrdnerInformationsquelleAutor VMAtm
Sollten Sie sicherstellen, dass die DevXpress Baugruppen ordnungsgemäß eingesetzt werden.
Auch die Fehlermeldung, die Sie auffordert, überprüfen Sie http://msdn.microsoft.com/en-us/library/ee191568(VS.100).aspx. Haben Sie das gemacht?
InformationsquelleAutor Dan
Ich zuvor gepostet in dieser Frage ALSO und ich werde den link hier, seit es zeigte sich auf meine Google-Suche Ergebnisse.
Zusammenfassung:
Es stellt sich heraus, dass für ein Projekt mit dem Ziel-Framework wie .NET 4.0 oder .NET 4.0 CP, es gibt einige DLLs nicht vorhanden sind .NET 4.5, in meinem Projekt der Fall Visual Basic DLLs.
Mein Projekt war eine Visual Basic (VB6) Projekt-Upgrade auf Visual Basic .NETTO - (VB.net) und es irgendwie auch nötig, die DLL aufgerufen
Microsoft.VisualBasic.PowerPacks.Vs.dll
befindet sich inC:\Program Files\Reference Assemblies\Microsoft\VBPowerPacks\v10.0
Des InstallShield-Projekt, dass Pakete, die Dateien in den installer auch nicht zu erkennen, diese Abhängigkeit.
Ich nur fand dies heraus, nach der Realisierung, dass das Projekt gut läuft mit Visual Studio installiert, aber stürzt ohne Warnung, als 'System.IOException.FileNotFound' in den crash-log.
InformationsquelleAutor matrixanomaly