WPF ohne .NET Framework als Exe weitergeben

toma123

Banned
Registriert
Apr. 2020
Beiträge
100
Das erste Programm ist fertig und nun würden wir dies gern auf anderen Rechnern probieren.

Wir haben uns erst mal für das .NET Framework entschieden und würde gern die WPF Anwendung als einzelne *.exe weiternutzen. Allerdings finden wir in Visual Studio nicht die Funktion dies als einzelne *.exe zu packen und zeitgleich kein Framework mitzuübergeben.
Bisher haben wir es nur geschafft das ganze, als Setup zu verbreiten, was wir nicht möchten.

Geht dies nicht oder haben wir die richtige Stelle nur noch nicht gefunden?
 
toma123 schrieb:
Geht dies nicht oder haben wir die richtige Stelle nur noch nicht gefunden?

Beim .NET Framework geht dieses nicht, bei .NET Core wiederum geht das beim veröffentlichen. Da wird das Framework dann mit ins Ausgabeverzeichnis geworfen.
 
Wenn deine Anwendung mit dem klassischen .net Framework erstellt wurde, erzeugt der Compile immer eine .exe, in der das Framework nicht enthalten ist.

Ich verstehe entsprechend deine Aussage "Allerdings finden wir in Visual Studio nicht die Funktion dies als einzelne *.exe zu packen und zeitgleich kein Framework mitzuübergeben." nicht.

Das einzige was du angeben musst ist die Versionsnummer des .net Framework, mit welcher deine .exe lauffähig sein soll. Du wählst beispielsweise .net 4.6 aus. Das heißt nicht, dass das ganze Framework in Version 4.6 deine .exe gepackt wird, sondern dass deine .exe davon ausgeht dass auf den Rechnern, auf denen es ausgeführt wird, .net 4.6 vorhanden ist.

Auf gepatchten Windows-Systemen kannst du davon ausgehen, dass alle modernen Framework-Versionen ab Version 4 und neuer unterstützt werden, ohne dass der Anwender irgendwas nachinstallieren muss.
 
  • Gefällt mir
Reaktionen: GroMag, Raijin, pseudopseudonym und eine weitere Person
Deine .exe befindet sich unter c:\Pfad\zu\deinem\Projekt\bin\Release falls du das meinst. Voraussetzung ist, dass du das Programm vorher erfolgreich Erstellen konntest.
 
Wenn du dein Projekt auf .NET Core 3.1 migrierst, dann kannst du da Compilerflag "PublishSingleFile" nutzen, dort sollten dann alle Dlls in eine .exe gemerged werden.
Siehe hier: https://docs.microsoft.com/de-de/dotnet/core/whats-new/dotnet-core-3-0#single-file-executables
Das ganze geht auch in Visual Studio: core.PNG

Alternativ kannst du für das .NET Framework das NuGet Paket "Fody" anschauen, das hat früher bei mir funktioniert.
 
pizzastueck schrieb:
Wenn du dein Projekt auf .NET Core 3.1 migrierst, dann kannst du da Compilerflag "PublishSingleFile" nutzen, dort sollten dann alle Dlls in eine .exe gemerged werden.
Das ist ja genau das, was er nicht will.
 
Zurück
Oben