Jedes Mal, wenn ich ein Projekt mit den neuen .NET Core RC2-Vorlagen erstellte, wurde mir nicht ein ausführbares. [~ # ~] exe [~ # ~] Bereitgestellt = Datei. Wenn ich zum Debuggen meiner Konsolenanwendung die Taste F5 drücke, wird die Anwendung ordnungsgemäß ausgeführt
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, gibt es keine. [~ # ~] exe [~ # ~] Datei. Nur die DLL.
Übersehen ich etwas? Oder stimmt etwas mit meiner project.json-Datei 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!
Es gibt tatsächlich 2 App-Modelle in .NET Core:
Portable Apps : Diese Apps sind stark von "DNX-Konsolen-Apps" inspiriert und erzeugen keine .exe
- Dateien und werden stattdessen von der ausgeführt. Geteilte Laufzeit von NET Core (deren Version durch das Paket Microsoft.NETCore.App
Definiert wird, dank seines speziellen Attributs type: platform
). 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 von dotnet run
Eine Ausnahme ausgelöst.
Standalone-Apps : Standalone-Apps sind guten alten .NET-Konsolen-Apps sehr ähnlich, da sie .exe
- Dateien erzeugen. Die .NET Core-Laufzeit muss nicht auf dem Computer installiert werden, da sie direkt in die Anwendung selbst eingebettet ist.
Sie verwenden derzeit das erste Modell. Um das Standalone-Modell zu verwenden, müssen Sie Ihren project.json
Optimieren:
runtimes
hinzu, um die Umgebungen aufzulisten, auf die Ihre App abzielt (z. B. win7-x64
Oder ubuntu.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": { }
}
}
Die Antwort ist in der Dokumentation mit vollständigen Schritten jetzt.
Sie können zwei Arten von Bereitstellungen für .NET Core-Anwendungen erstellen:
- Framework-abhängige Bereitstellung
- Eigenständige Bereitstellung
Für eine ausführbare EXE-Datei sollte Eigenständige Bereitstellung verwendet werden.
Zum Erstellen einer ausführbaren Anwendung aus einer .NET Core-Konsolenanwendung 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 wählen, wie osx.10.11-x64
Oder ubuntu.16.04-x64
.
Wenn Sie die Standardkonfiguration (New Project -> Console App (.NET Core)
) verwendet haben, ist keine Änderung der Konfigurationsdatei erforderlich.
schritt 1: Entfernen Sie "type": "platform",
aus Project.json im Abschnitt frameworks
schritt 2: Fügen Sie Ihrem project.json einen Abschnitt zur Laufzeit hinzu. Beachten Sie, dass jeder Abschnitt durch ein Komma getrennt ist. Fügen Sie Ihre Laufzeit hinzu. Unten ist nur ein Beispiel für Win 10.
"runtimes": {
"win10-x64": {}
}
Schritt 3: Befehl dotnet restore in Ihrem Projekt. (Öffne cmd, gehe in deinen Projektordner, wo auch immer sich der src-Ordner befindet, starte dotnet restor)
schritt 4: dotnet pack
Schritt 4: dotnet build -r win10-x64
- oder einfach nur bauen.
Schritt 5: Sie können feststellen, dass .exe unter debug/netcore/win10/erstellt wurde.
Im ASP.NET Core
Ändern Sie Ihre App type
in default
in project.json
:
"Microsoft.NETCore.App": {
"type": "default",
"version": "1.0.0-*"
}