"Sub Main" wird mehrmals in "<namespace>" deklariert: <Nachricht>

Sub Main kann nur einmal innerhalb eines Namespace deklariert werden.

Fehler-ID: BC30738

Ursache

Dieser Fehler tritt häufig in Windows Forms-Anwendungen auf, wenn Sie ihre eigene Sub Main Prozedur definieren, während das Visual Basic Application Framework aktiviert ist. Das Anwendungsframework generiert automatisch eine Main Prozedur, wodurch ein Konflikt entsteht, wenn Sie ein weiteres hinzufügen.

So beheben Sie diesen Fehler

Wählen Sie einen der folgenden Ansätze aus:

  • Entfernen Sie Ihre benutzerdefinierte Sub Main Prozedur.
  • Konfigurieren Sie das Startformular und den Initialisierungscode mithilfe des Anwendungsframeworks:
    • Legen Sie das Startformular auf der Registerkarte "Project Properties>Application " fest.
    • Verwenden Sie die My.MyApplication Ereignisse für benutzerdefinierte Startlogik.

Option 2: Deaktivieren des Anwendungsframeworks

Wenn Sie programmgesteuerte Kontrolle über den Anwendungsstart benötigen (z. B. um auszuwählen, welches Formular basierend auf Befehlszeilenargumenten angezeigt werden soll):

  • Deaktivieren Sie auf der Registerkarte "Projekteigenschaften">"Anwendung" das Kontrollkästchen "Anwendungsframework aktivieren".
  • Legen Sie das Startobjekt für Ihr Modul oder Ihre Klasse fest, die Sub Main enthält.
  • Implementieren Sie Ihr eigenes Sub Main Verfahren zum Steuern des Anwendungsstarts.

Option 3: Entfernen doppelter Hauptprozeduren

  • Stellen Sie sicher, dass nur ein einzelnes Sub Main Verfahren in Ihrem gesamten Projekt vorhanden ist.

Zugang My.MyApplication.Main

Wenn Sie auf den automatisch generierten Startcode zugreifen müssen, können Sie mit WindowsFormsApplicationBase-Objekt und seinen Ereignissen wie Startup, StartupNextInstance und Shutdown arbeiten. Das Anwendungsframework stellt diese Ereignisse speziell zum Anpassen des Anwendungsverhaltens bereit, ohne ihre eigene Main Prozedur zu definieren.

Siehe auch