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.
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.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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]
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
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hier die csproj-Datei:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<UseWPF>true</UseWPF>
</PropertyGroup>
</Project>
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.
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.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Die Fehlermeldung sagt doch, keinen Einstiegspunkt gefunden, also fehlt entweder eine main oder du hast die app.xaml.cs gelöscht.
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!