VB.Net中的主要功能在哪里

Bru*_*ill 5 .net c# vb.net

我接管了VB.Net WinForms应用程序的支持.我实际上是ac#developer并且更熟悉c#项目中visual studio项目的设置.现在我试图确定为什么我的应用程序崩溃在特定的XP安装上,我在这里阅读了这个建议

http://social.msdn.microsoft.com/forums/en-US/winformssetup/thread/53c2de93-ab33-41d0-b5dd-7ca5fbfa5c24/

在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)

Kon*_*lph 7

VB有一个称为"应用程序框架"的特殊模式(可以在主选项下找到).

如果启用此模式,编译器会自动生成一个Main方法并在其周围出现一些问题.您可以禁用此选项; 但是,这可能会导致项目出现问题,因为项目实际上可能会使用应用程序框架功能.

或者,您可以UnhandledExceptions使用相同的应用程序框架为未捕获的异常()注册事件处理程序.


Jim*_*ley 3

执行此操作的更多 VB 方法是打开“应用程序属性”并单击“ViewApplicationEvents”按钮。这将打开 Application.xaml.vb 文件,您可以在其中为应用程序添加自定义事件处理程序。从左侧下拉列表中选择“Application Events”,您可以轻松访问一系列事件,包括 DispatcherUnhandledException、Activated、Navigating、Startup、Exit 等。您还可以在此处添加 Main 方法,方法是从左侧下拉列表中选择 Applciation,然后选择主要从右侧下拉。

对于 WindowsForms 应用程序,过程类似。但是,当您选择“Applciation Events”按钮时,显示的文件是 ApplicationEvents.vb 文件。在这里,要添加全局错误处理程序,请选择左侧下拉列表并选择 MyApplication Events。然后在右侧下拉列表中添加 UnhandledException 处理程序。您也可以在此处创建 Main 方法。