wake-up-neo.com

Erstellen Sie die EXE-Datei in .NET Core RC2

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:

Bin folder structure

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!

74

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:

  • Fügen Sie einen Abschnitt 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 .
  • Entfernen Sie die 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": { }
  }
}
71
Pinpoint

Die Antwort ist in der Dokumentation mit vollständigen Schritten jetzt.

Sie können zwei Arten von Bereitstellungen für .NET Core-Anwendungen erstellen:

  1. Framework-abhängige Bereitstellung
  2. Eigenständige Bereitstellung

Für eine ausführbare EXE-Datei sollte Eigenständige Bereitstellung verwendet werden.

13
zwcloud

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.

7
Jack Miller

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.

4
Shankar

Im ASP.NET Core Ändern Sie Ihre App type in default in project.json:

"Microsoft.NETCore.App": {
  "type": "default",
  "version": "1.0.0-*"
}
2
Serj Sagan