Jedes Mal, wenn ich ein Projekt mit den neuen .NET Core RC2-Vorlagen erstelle, wird mir keine ausführbare Datei bereitgestellt. EXE- Datei. Wenn ich zum Debuggen meiner Konsolenanwendung F5 drücke, läuft es einwandfrei über
C:\Program Files\dotnet\dotnet.exe
Anwendung. Und wenn ich das benutze
dotnet run
Befehl im Ordner, läuft es auch gut. Ich sehe jedoch keine Möglichkeit, die Anwendung ohne die .NET Core CLI-Tools auszuführen.
Der Inhalt meiner
bin\Debug\netcoreapp1.0\
Ordner sieht so aus:
Wie Sie sehen können, gibt es keine. EXE- Datei verfügbar. Nur die DLL.
Übersehe ich etwas? Oder stimmt etwas mit meiner Datei project.json nicht?
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0-rc2-3002702"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
Vielen Dank!
.net
asp.net-core
.net-core
package.json
.net-core-rc2
Johannes Heesterman
quelle
quelle
buildOptions
und Sie haben bereits das,"emitEntryPoint": true
was den Trick machen sollte. Haben Sie versucht, manuelldotnet build
aus dem Cmd-Zeilenfenster auszuführen ? Sind Sie auch sicher, dass Sie im richtigen Ausgabeverzeichnis suchen?Antworten:
Es gibt tatsächlich 2 App-Modelle in .NET Core:
Tragbare Apps : Diese Apps sind stark von "DNX-Konsolen-Apps" inspiriert
.exe
und produzieren keine Dateien. Sie werden stattdessen von der gemeinsam genutzten .NET Core-Laufzeit ausgeführt (deren VersionMicrosoft.NETCore.App
dank ihres speziellentype: platform
Attributs vom Paket definiert wird). Die entsprechende .NET Core-Laufzeit muss auf dem Computer installiert sein, damit tragbare Apps verwendet werden können. Wenn die genaue Version nicht gefunden werden kann, wird beim Ausführen eine Ausnahme ausgelöstdotnet run
.Standalone-Apps : Standalone-Apps ähneln guten alten .NET-Konsolen-Apps, da sie
.exe
Dateien produzieren . Die .NET Core-Laufzeit muss nicht auf dem Computer installiert sein, da sie direkt in die Anwendung selbst eingebettet ist.Sie verwenden derzeit das erste Modell. Um das eigenständige Modell zu verwenden, müssen Sie Folgendes optimieren
project.json
:runtimes
Abschnitt hinzu, um die Umgebungen aufzulisten, auf die Ihre App abzielt (z . B.win7-x64
oderubuntu.14.04-x64
). Die vollständige Liste finden Sie hier .Microsoft.NETCore.App
Abhängigkeit. Sie können es stattdessen durch dieses Paket ersetzen :"NETStandard.Library": "1.5.0-rc2-24027"
.Hier ist ein Beispiel für eine eigenständige App:
{ "buildOptions": { "emitEntryPoint": true, "preserveCompilationContext": true, "warningsAsErrors": true }, "dependencies": { "Microsoft.Extensions.Configuration.Binder": "1.0.0-rc2-final", "Microsoft.Extensions.Configuration.CommandLine": "1.0.0-rc2-final", "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final", "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final", "Microsoft.Extensions.DependencyInjection": "1.0.0-rc2-final", "Microsoft.Extensions.Logging": "1.0.0-rc2-final", "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final", "NETStandard.Library": "1.5.0-rc2-24027" }, "frameworks": { "net451": { }, "netcoreapp1.0": { "dependencies": { "System.Net.Ping": "4.0.0-rc2-24027" }, "imports": [ "dnxcore50", "dotnet5.6", "portable-net451+win8" ] } }, "runtimes": { "win7-x64": { } } }
quelle
netcoreapp1.0
Abschnitt Frameworks erforderlich ist / nicht? Das heißt, Sie habenSystem.Net.Ping
als Abhängigkeit aufgeführt - könnte dies in den zuvor definiertendependencies
Abschnitt verschoben werden ?Die Antwort finden Sie in der Dokumentation mit vollständigen Schritten.
Für eine ausführbare EXE-Datei sollte die eigenständige Version " Veröffentlichen" verwendet werden.
quelle
Um eine ausführbare Anwendung aus einer .NET Core-Konsolenanwendung zu erstellen, können Sie das Dotnet-Tool verwenden . Führen Sie einfach in Ihrem Projektverzeichnis:
dotnet publish --runtime win7-x64
Dadurch wird eine eigenständige App erstellt (eigenständige Bereitstellung; enthält alle erforderlichen Bibliotheken, die mindestens 60 MB auf Ihrer Festplatte belegen). Natürlich können Sie auch andere Laufzeiten wie
osx.10.11-x64
oder auswählenubuntu.16.04-x64
.Wenn Sie die Standardkonfiguration (
New Project -> Console App (.NET Core)
) verwendet haben, ist keine Änderung einer Konfigurationsdatei erforderlich.quelle
Schritt 1: Entfernen Sie
"type": "platform",
aus Project.json unterframeworks
AbschnittSchritt 2: Fügen Sie Ihrer project.json einen Laufzeitabschnitt hinzu. Beachten Sie, dass jeder Abschnitt durch ein Komma getrennt ist. Fügen Sie Ihre Laufzeit hinzu. Unten ist nur ein Beispiel für Gewinn 10.
"runtimes": { "win10-x64": {} }
Schritt 3: Dotnet-Wiederherstellungsbefehl für Ihr Projekt. (Öffnen Sie cmd, gehen Sie zu Ihrem Projektordner, wo immer sich der src-Ordner befindet, und führen Sie die dotnet-Wiederherstellung aus.)
Schritt 4:
dotnet pack
Schritt 4:dotnet build -r win10-x64
- oder einfach bauen.Schritt 5: Sie können feststellen, dass .exe unter debug / netcore / win10 / erstellt wurde
quelle
In
ASP.NET Core
Versuchen Sie , Ihre Apptype
zudefault
, inproject.json
:"Microsoft.NETCore.App": { "type": "default", "version": "1.0.0-*" }
quelle