我在 VB.NET 中做了一个项目。如果我创建的应用程序会产生不需要的错误,它将创建一个包含错误的文本文件。在 Visual Studio 上运行它时我能够做到这一点,但在运行单独的应用程序时它不起作用,这是在 bin/Debug 上找到的可执行文件。
这是我所做的:
Sub Main(ByVal ParamArray args() As String)
Try
System.Windows.Forms.Application.Run(New Form1)
Catch ex As Exception
WriteErrorLogs(ex)
End Try
End Sub
Sub WriteErrorLogs(Byval ex As Exception)
' create a textfile the write x.Message, x.Source, x.ToString
Dim dnow As String = Now.ToString
Dim filename As String = "Error " & removeInvalidChars(dnow)
Dim saveto As String = New IO.FileInfo("Errors/" & filename).FullName & ".txt"
Dim title As String = ex.Message
Dim stacktrce As String = ex.StackTrace
If Not IO.Directory.Exists(New IO.DirectoryInfo("Errors").FullName) Then IO.Directory.CreateDirectory("Errors")
Dim fw As New IO.StreamWriter(saveto, False, System.Text.Encoding.UTF8)
fw.WriteLine(title)
fw.WriteLine()
fw.WriteLine(stacktrce)
fw.Close()
End Sub
Private Function removeInvalidChars(ByRef s As String)
Dim invalidChars() As Char = "\/:*?""<>|".ToCharArray
For Each i As Char In invalidChars
s = s.Replace(i, ".")
Next
Return s
End Function
有没有更好的解决方案?