Laden...

.NET 5 WPF-Projekt erzeugt keine Main-Methode

Erstellt von DarkSide47 vor 2 Jahren Letzter Beitrag vor 2 Jahren 651 Views
D
DarkSide47 Themenstarter:in
13 Beiträge seit 2009
vor 2 Jahren
.NET 5 WPF-Projekt erzeugt keine Main-Methode

Hallo zusammen,

ich bin da auf ein Problem gestoßen, das ich bisher nicht selbständig lösen konnte und für das ich hier auch keinen bestehenden Eintrag gefunden habe.
Daher hoffe ich auf ein paar hilfreiche Tipps.

Ich habe vorgestern Visual Studio 2019 Community Edition auf die Version 16.9.3 aktualisiert.
Ich erstelle nun ein neues Projekt vom Typ "WPF-Anwendung" mit dem .NET 5.0 als Zielframework.

Wenn der Erstell-Assistent fertig ist und nachdem die IDE sich vollständig geöffnet hat und auch die Hintergrundaktionen zu Ende gelaufen sind, starte ich das Projekt mittels F5.
Man beachte bitte, dass ich noch keinerlei inhaltliche Änderungen vorgenommen habe.

Allerdings kracht es direkt mit folgender Fehlermeldung:


Erstellen gestartet...
1>------ Erstellen gestartet: Projekt: test8, Konfiguration: Debug Any CPU ------
1>CSC : error CS5001: Das Programm enthält keine als Einstiegspunkt geeignete statische Main-Methode.
1>Die Erstellung des Projekts "test8_04hfkclo_wpftmp.csproj" ist abgeschlossen -- FEHLER.
\========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ==========

Folgendes habe ich daraufhin geprüft:

  • Es tritt ausschließlich bei neu angelegten Projekten auf, die als Zielframework .NET 5.0 oder .NET-Core 3.1 haben.
    -> Bei Projekten mit Zielframework .NET-Framework 4.6 / 4.7.2 tritt es nicht auf.

  • Es spielt auch keine Rolle, ob ich ein WPF-oder WinForms-Projekt verwende, sobald ich das oben genannte Zielframework verwende, knallt es.

  • Ich konnte weiterhin herausfinden, dass die Methode offensichtlich nicht generiert wird.
    -> Im Verzeichnis : _...\test8\test8\obj\Debug\net5.0-windows_ wird keine App.g.cs bzw. App.g.i.cs generiert. Alle anderen Dateien, wie bspw für die MainForm, etc. sind aber vorhanden.

  • Ich habe nun auch die Reparatur-Funktion des Visual Studio Installers benutzt, aber das hatte ebenfalls keinen Effekt.

  • In der Windows-Ereignisanzeige konnte ich nirgends irgendeine Art von Fehlermeldung finden.

  • Auch ein abschalten des Windows Defenders brachte keine Änderung am Verhalten.

  • Ich habe auch keine Plugins/Add-Ins/Add-Ons für VS im Einsatz, es ist wirklich die reine Standard-IDE.

Vielleicht kann mich jemand in die richtige Richtung schubsen.

16.806 Beiträge seit 2008
vor 2 Jahren

Kann ich nicht nachvollziehen.

Erstelle ich ein WPF for .NET Core Projekt und setze die Runtime auf 5.0 Current, dann läuft das alles sauber durch (bis auf die NuGet Infos, die man in dem Kontext bei nem leeren Projekt ignorieren kann).

Build started... NuGet package restore failed. Please see Error List window for detailed warnings and errors. Error occurred while restoring NuGet packages: The operation failed as details for project WpfApp1 could not be loaded. 1>------ Build started: Project: WpfApp1, Configuration: Debug Any CPU ------ 1>You are using a preview version of .NET. See: [https://aka.ms/dotnet-core-preview](https://aka.ms/dotnet-core-preview) 1>WpfApp1 -> C:\source\WpfApp1\WpfApp1\bin\Debug\net5.0-windows\WpfApp1.dll \========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Ich glaube bei Dir stimmt was nicht beim Thema .NET 5. Sicher, dass Du das richtige Zeug installiert hast?
Mit dotnet --info siehst Du, welche SDKs und welche Runtimes installiert sind.

D
DarkSide47 Themenstarter:in
13 Beiträge seit 2009
vor 2 Jahren
Re: .NET 5 WPF-Projekt erzeugt keine Main-Methode

Hallöchen,

erst Mal vielen Dank, dass du die Zeit und Mühe investiert hast.

Vielleicht kurz Vorweg. Ich habe .NET 5.0 nicht explizit installiert. Ich hatte es nach der Aktualisierung auf 16.9.3 einfach in der UI zur Auswahl als Zielframework.
Ich gehe daher davon aus, dass es mit der Version einfach mit installiert/aktiviert wurde.

Wie dem auch sei, ich habe hier das Ergebnis von dotnet --info kopiert. Sieht für mich allerdings korrekt aus.


.NET SDK (gemäß "global.json"):
 Version:   5.0.201
 Commit:    a09bd5c86c

Laufzeitumgebung:
 OS Name:     Windows
 OS Version:  10.0.19042
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\5.0.201\

Host (useful for support):
  Version: 5.0.4
  Commit:  f27d337295

.NET SDKs installed:
  5.0.201 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.All 2.1.26 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.26 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.13 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.26 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.13 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.1.13 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 5.0.4 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

16.806 Beiträge seit 2008
vor 2 Jahren

Zeig mal Deine csproj.

Ich gehe daher davon aus, dass es mit der Version einfach mit installiert/aktiviert wurde.

Ja und nein.
Nur die .NET Hauptversionen sind teil des VS Installers

D
DarkSide47 Themenstarter:in
13 Beiträge seit 2009
vor 2 Jahren

Hier die csproj-Datei:


<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net5.0-windows</TargetFramework>
    <UseWPF>true</UseWPF>
  </PropertyGroup>

</Project>

4.931 Beiträge seit 2008
vor 2 Jahren

Bei meinem .NET 5-Projekt lautet die erste Zeile:


<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

Edit: Ok, nach Aktualisierung meines VS 2019 auf Version 16.9.3 lautet die Zeile bei einem neuen WPF-Desktop-Projekt wie bei dir nur noch


<Project Sdk="Microsoft.NET.Sdk">

Das Projekt wird bei mir aber einwandfrei erzeugt und ist ohne Fehlermeldungen lauffähig.

16.806 Beiträge seit 2008
vor 2 Jahren

Microsoft.NET.Sdk.WindowsDesktop war der SDK-Identifier für Winforms/WPF-Anwendungen vor .NET 5; also .NET 3.1 und vorher.
Ab .NET 5 bzw seit SDK 5.0.100 ist es Microsoft.NET.Sdk. Funktioniert zudem nur mit TargetFramework net5.0-windows

Es gibt kein Scaffolding, das Microsoft.NET.Sdk.WindowsDesktop mit .NET 5 erstellt.
Daher hatte ich nach dem csproj gefragt.

Also ich sehe keinen Fehler an der csproj oder an der Runtime selbst, basierend auf --info.
Der Fehler muss von was anderem kommen; was, weiß ich leider auch nicht.

F
10.010 Beiträge seit 2004
vor 2 Jahren

Die Fehlermeldung sagt doch, keinen Einstiegspunkt gefunden, also fehlt entweder eine main oder du hast die app.xaml.cs gelöscht.

D
DarkSide47 Themenstarter:in
13 Beiträge seit 2009
vor 2 Jahren

Danke für den neuen Input.

Die App.xaml.cs Datei ist definitiv vorhanden.

Eine Main-Methode habe ich nicht explizit implementiert, da es bisher immer so war, dass diese entweder in der gewählten Projektvorlage vom VS schon enthalten war oder automatisch generiert wurde.

Wie dem auch sei.
Ich habe eben Visual Studio komplett deinstalliert und erneut installiert und seither funktioniert es wieder.

Vielen Dank für eure Tipps!