我接管了VB.Net WinForms应用程序的支持.我实际上是ac#developer并且更熟悉c#项目中visual studio项目的设置.现在我试图确定为什么我的应用程序崩溃在特定的XP安装上,我在这里阅读了这个建议
在main函数中添加try catch块.这是在第5个帖子的底部建议的.(我将在下面引用它)但是,如果我查看VB.Net visual studio项目,我找不到Main()过程.我找到的是一个名为"我的项目"的灰色文件夹,里面有一个"Application.myapp"文件.此文件具有关联的设计器文件,但如果单击它,我会看到以下xml:
<?xml version="1.0" encoding="utf-8"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>true</MySubMain>
<MainForm>MDIMain</MainForm>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>
Run Code Online (Sandbox Code Playgroud)
所以任何人都可以启发我到这个VB.Net项目的实际主过程调用的位置,以便我可以尝试捕获正在发生的异常.如果,正如我怀疑的那样,我的VB.Net项目中实际上没有主程序,有人可能会让我知道如何在我的项目中执行以下操作:
[STAThread]
static void Main()
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
catch (System.IO.FileNotFoundException ex)
{
MessageBox.Show(ex.Message + " \n\n\n" + ex.StackTrace);
}
}
Run Code Online (Sandbox Code Playgroud)
VB有一个称为"应用程序框架"的特殊模式(可以在主选项下找到).
如果启用此模式,编译器会自动生成一个Main方法并在其周围出现一些问题.您可以禁用此选项; 但是,这可能会导致项目出现问题,因为项目实际上可能会使用应用程序框架功能.
或者,您可以UnhandledExceptions使用相同的应用程序框架为未捕获的异常()注册事件处理程序.
执行此操作的更多 VB 方法是打开“应用程序属性”并单击“ViewApplicationEvents”按钮。这将打开 Application.xaml.vb 文件,您可以在其中为应用程序添加自定义事件处理程序。从左侧下拉列表中选择“Application Events”,您可以轻松访问一系列事件,包括 DispatcherUnhandledException、Activated、Navigating、Startup、Exit 等。您还可以在此处添加 Main 方法,方法是从左侧下拉列表中选择 Applciation,然后选择主要从右侧下拉。
对于 WindowsForms 应用程序,过程类似。但是,当您选择“Applciation Events”按钮时,显示的文件是 ApplicationEvents.vb 文件。在这里,要添加全局错误处理程序,请选择左侧下拉列表并选择 MyApplication Events。然后在右侧下拉列表中添加 UnhandledException 处理程序。您也可以在此处创建 Main 方法。