.net eksekverbar bygges på xp, starter ikke på Windows 7 - werfault

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har lavet en .NET-applikation på en Windows XP-arbejdsstation, og det virker fint.
Men hvis jeg forsøger at køre den på Windows 7, starter programmet slet ikke - ingen vinduer, ingen fejlmeddelelser, intet visibile. Jeg har tryed i hver kombination af kompatibilitetsmodus i 7, men ingen fungerer.
Det eneste, jeg kan se i opgaveadministratoren, er, at når jeg starter applikationen på Windows 7 samtidig, startes werfault.exe processen, og efter et par sekunder forsvinder begge.


Er der en werfault.exe logfil eller noget at kontrollere for at forstå, hvad der sker?


Tak

Bedste reference


Du kan prøve at se på Windows Event Log. Det kan indeholde oplysninger om fejlen. Prøv også at køre som administrator. Du skal også sørge for, at den korrekte .NET-ramme er installeret på Windows 7-maskinen.

Andre referencer 1


Vær tålmodig, og lær fra eksperterne, :)


http://blogs.msdn.com/b/tess/archive/2008/06/05/setting-net-breakpoints-in-windbg-for-applications-that-crash-on-startup.aspx[4]


Et lavere niveau debugger som WinDbg kan hjælpe i de hårdeste tider.


I dit tilfælde opstod en uhåndteret undtagelse, og WinDbg + SOS kan vise dig undtagelsesoplysningerne, hvis du kører! Pe.


Held og lykke.

Andre referencer 2


Standardprojektet skabelon til WinForms mangler et par forsøgs-/fangstblokke, som det virkelig burde have at undgå sådanne problemer.


Formkonstruktoren er en enkel


InitializeComponent();


Bedre at have en prøve/fange blokke rundt, der smider en meddelelsesboks, der viser fejlen.


Det samme for Main i Program.cs


Jeg har lejlighedsvis haft problemer med at vise en meddelelsesboks, når fejl i disse metoder, så jeg tyver på at vise et konsolvindue:


[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool AllocConsole();


Ring derefter til:


string msg = "Some explanation.";
AllocConsole();
Console.WriteLine(msg);
MessageBox.Show(msg);