2016-08-05 31 views
3

Ich habe eine .NET Core-Konsolenanwendung erstellt. Ich möchte die App so erstellen, dass ich sie auf Windows oder Mac ausführen kann, ohne dass dotnet core auf dem Rechner installiert ist. Also brauche ich z.B. für Windows eine exe.Ausführen einer .NET Core Console-Anwendung unter Mac oder Windows

Ive lesen https://docs.microsoft.com/de-de/dotnet/articles/core/tools/dotnet-publish und ich weiß, wie Sie die Anwendung für die verschiedenen Plattform (en) kompilieren.

Aber keine ausführbare Datei wird erstellt. Was fehlt mir hier und wie erreiche ich mein Ziel?

Antwort

1

Was Sie brauchen, ist eine self-contained application erstellen. Der Link erklärt, wie Sie Ihre project.json genau ändern können.

Beachten Sie außerdem, dass eine eigenständige Anwendung zwar keine Abhängigkeit von .Net Core hat, aber andere Abhängigkeiten aufweisen kann. Speziell auf OSX glaube ich, dass Sie eine bestimmte Version von openssl von homebrew installieren müssen.

+0

Vielen Dank! Ich konnte mein Projekt kompilieren und ausführen. Gibt es eine Möglichkeit, zu DLLs zu entfernen, die ich nicht brauche? z.B. Es gibt eine Microsoft.CodeAnalysis.VisualBasic.dll. Ich hätte gerne eine kleinere Version. Nach dem Veröffentlichen erhalte ich einen 46 MB großen Ordner für meine kleine App :) – dknaack

+0

@dknaack [Eine kommende Version von .Net Core sollte das automatisch behandeln.] (Https://blogs.msdn.microsoft.com/dotnet/2016/07/ 15/net-core-roadmap /) Im Moment können Sie die Abhängigkeit von 'Microsoft.NETCore.App' durch die Abhängigkeiten ersetzen, die Sie tatsächlich benötigen. Für eine triviale Hello World-App scheinen beispielsweise die erforderlichen Abhängigkeiten "Microsoft.NETCore.Runtime.CoreCLR" zu sein: "1.0.3", "Microsoft.NETCore.DotNetHostPolicy": "1.0.1", " System.Console ":" 4.0.0 "'. – svick

+0

Großartig! Mit deinem Rat und http://packagesearch.azurewebsites.net/ konnte ich mein Ziel archivieren und die Größe um die Hälfte reduzieren. – dknaack