C# 如果我在重新启动时启动应用程序,我的应用程序会在几秒钟后崩溃

C# 如果我在重新启动时启动应用程序,我的应用程序会在几秒钟后崩溃,c#,windows-7,crash,registry,boot,C#,Windows 7,Crash,Registry,Boot,我在Windows 7上运行,我的应用程序在启动时出现问题。 在我的应用程序中,我使用一些线程和外部dll(sqlite3.dll等)。 我已在start.exe文件的第一行包括以下行: RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); String p = System.Environment.CommandLine.Re

我在Windows 7上运行,我的应用程序在启动时出现问题。 在我的应用程序中,我使用一些线程和外部dll(sqlite3.dll等)。 我已在start.exe文件的第一行包括以下行:

RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
String p = System.Environment.CommandLine.Replace("vshost.","");
String pp = p.Remove(p.Length-1);
rkApp.SetValue("MyAPP", pp);
如果我从exe文件(或使用VisualStudio)手动启动我的应用程序,则可以正常工作。 如果我在重启时启动应用程序,我的应用程序会在几秒钟后崩溃

为什么我有这个问题

编辑: 我已附上崩溃日志:

Descrizione
Percorso dell'applicazione che ha generato l'errore:    C:\Users\Francesco\DynInst\bin\start.exe

Firma del problema
Nome evento problema:   APPCRASH
Nome applicazione:  start.exe
Versione applicazione:  1.0.0.0
Timestamp applicazione: 4d2061b9
Nome modulo con errori: KERNELBASE.dll
Versione modulo con errori: 6.1.7600.16385
Timestamp modulo con errori:    4a5bdaae
Codice eccezione:   e0434f4d
Offset eccezione:   00009617
Versione SO:    6.1.7600.2.0.0.256.48
ID impostazioni locali: 1040
Informazioni aggiuntive 1:  0a9e
Ulteriori informazioni 2:   0a9e372d3b4ad19135b953a78882e789
Ulteriori informazioni 3:   0a9e
Ulteriori informazioni 4:   0a9e372d3b4ad19135b953a78882e789

Ulteriori informazioni sul problema
ID bucket:  2250313277
我们已经解决了我的问题。 仅供参考:如果您在应该在启动时启动的应用程序上使用Directory.GetCurrentDirectory(),我们必须验证正确的路径(实际上是windows/system)


谢谢你的帮助!与动态调试所有工作正常

@Cecco他的意思是你没有对任何帖子投票。您应该通过单击有用的问题和答案旁边的向上箭头来投票,从而帮助系统工作。我建议你读这本书@米奇,请不要在没有给出建议的情况下提出这样的建议。至少链接到faq。对于初学者来说,一些关于崩溃本身的信息可能会有所帮助。比如说,堆栈跟踪。如果调试应用程序时遇到问题,请将System.Diagnostics.Debugger.Break()放在第一行。谢谢Rytmis。我是VisualStudio的新手,您能解释一下我如何使用System.Diagnostics.Debugger.Break()吗?您可以把它放在代码的开头。当运行时执行该行时,会调用系统调试器。它会弹出一个对话框,询问您要使用哪个调试器,在哪个点可以选择VisualStudio,然后它会启动并连接到正在运行的进程。这样,您就可以两全其美:进程在启动时运行,但您仍然可以从VisualStudio进行调试。但当我添加这一行时,Windows会加载一个带有不确定进度条的对话框,通知我用户已放置“调试点”,但在此对话框关闭后,Windows会向我显示“start.exe出错”。