Construire un fichier .exe dans .NET Core RC2

Chaque fois que je construis un projet en utilisant les nouveaux modèles .NET Core RC2, je ne suis pas fourni avec un exécutable. Fichier EXE Si je frappe F5 pour le débogage de mon application console, il fonctionne bien à travers le

C:\Program Files\dotnet\dotnet.exe 

application. Et si j’utilise le

 dotnet run 

commande dans le dossier, il fonctionne bien aussi. Mais je ne vois aucun moyen d’exécuter l’application sans les outils .NET Core CLI.

Le contenu de mon

  bin\Debug\netcoreapp1.0\ 

dossier ressemble à ceci:

Structure du dossier Bin

Comme vous pouvez le voir, il n’y en a pas. Fichier EXE disponible. Juste le dll.

Est-ce que j’oublie quelque chose? Ou y a-t-il quelque chose qui ne va pas avec mon fichier project.json?

 { "version": "1.0.0-*", "buildOptions": { "emitEntryPoint": true }, "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0-rc2-3002702" } }, "frameworks": { "netcoreapp1.0": { "imports": "dnxcore50" } } } 

Merci!

Il existe en réalité 2 modèles d’application dans .NET Core:

  • Applications portables : fortement inspirées des «applications de la console DNX», ces applications ne produisent pas de fichiers .exe et sont exécutées par le runtime partagé .NET Core (dont la version est définie par le package Microsoft.NETCore.App type: platform atsortingbut de type: platform ). Le runtime .NET Core correspondant doit être installé sur la machine pour pouvoir utiliser des applications portables. Si la version exacte est introuvable, une exception est lancée lors de l’exécution de dotnet run .

  • Applications autonomes: les applications autonomes sont très similaires aux bonnes applications de la console .NET car elles produisent des fichiers .exe . Le runtime .NET Core n’a pas besoin d’être installé sur la machine, car il est directement intégré à l’application elle-même.

Vous utilisez actuellement le premier modèle. Pour utiliser le modèle autonome, vous devez modifier votre project.json :

  • Ajoutez une section runtimes pour répertorier les environnements ciblés par votre application (par exemple, win7-x64 ou ubuntu.14.04-x64 ). Vous pouvez trouver la liste complète ici .
  • Supprimez la dépendance Microsoft.NETCore.App . Vous pouvez le remplacer par ce package à la place: "NETStandard.Library": "1.5.0-rc2-24027" .

Voici un exemple d’application autonome:

 { "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": { } } } 

La réponse se trouve dans la documentation avec les étapes complètes maintenant.

Vous pouvez créer deux types de déploiements pour les applications .NET Core:

  1. Déploiement dépendant du cadre
  2. Déploiement autonome

Pour un fichier exécutable .EXE, le déploiement autonome doit être utilisé.

Pour créer une application exécutable à partir d’une application de console .NET Core, vous pouvez utiliser l’ outil dotnet . Il suffit de courir dans votre répertoire de projet:

 dotnet publish --runtime win7-x64 

Cela crée une application autonome (déploiement autonome; inclut toutes les bibliothèques nécessaires consommant au moins 60 Mo sur votre disque). Bien sûr, vous pouvez également choisir d’autres temps d’exécution, comme osx.10.11-x64 ou ubuntu.16.04-x64 .

Si vous avez utilisé la configuration par défaut ( New Project -> Console App (.NET Core) ), aucun fichier de configuration n’est nécessaire.

étape 1: supprimer "type": "platform", de Project.json dans la section frameworks

étape 2: ajoutez une section d’exécution à votre project.json. Notez que chaque section est séparée par une virgule. Ajoutez votre runtime. ci-dessous n’est qu’un exemple de victoire 10.

 "runtimes": { "win10-x64": {} } 

Étape 3: commande de restauration de dotnet sur votre projet. (ouvrez cmd, allez dans votre dossier de projet où le dossier src est là, lancez dotnet restor)

étape 4: dotnet pack étape 4: dotnet build -r win10-x64 – ou simplement créer.

Étape 5: vous pouvez remarquer .exe créé sous debug / netcore / win10 /

Dans ASP.NET Core essayez de changer le type application par default , dans project.json :

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