Table des matières
一、前言
二、生成可执行
三、RID
Maison développement back-end Tutoriel C#.Net Comment .NET Core publie les fichiers exécutables dans le nouveau système de projet (.csproj)

Comment .NET Core publie les fichiers exécutables dans le nouveau système de projet (.csproj)

Apr 23, 2017 pm 04:28 PM
可执行文件

一、前言

  .NET工具链在最新的Preview3版本中,引入了新的MSBuild项目系统,项目文件又回归了.csproj的XML文件来管理,项目文件、包引用、程序集引用、.NET Core工具集、发布内容定义等内容。本文主要将主要讨论如何在新的项目系统中(.csproj)发布可执行文件。我们都知道在之前的版本中,项目文件是通过project.json文件来管理项目和包引用的,那么通过删除 dependencies->Microsoft.NETCore.App-> "type": "platform" 子节点,并定义runtimes节点,来发布可执行文件 。

  所为可执行文件就是在目标机器上,不需要安装.NET Core SDK或任何Runtime,就可以执行的文件。比如在Windows上可以生成 coreapp.exe的可执行文件,而在Linux中可以使用 ./coreapp 来执行。

  原理上这种可执行文件,就是通过一个C++应用程序为载体(宿主),加载CoreCLR,通过CoreCLR再加载任意的程序集,对这里有兴趣的朋友也可以到Github上去看一下CoreCLR中ClrHost的部分。

二、生成可执行

  在新的.csproj项目文件中,我们要想发布一个可执行文件,就在手动创建名为的节点,在这个节点下面,添加RuntimeIdentifiers也就是以前的RID定义,RID是描述系统平台的统一命名标示。例如我想要发布的可执行文件的目标系统平台为Win10Mac os 10.11.* 定义如下:


 <propertygroup>
      <runtimeidentifiers>win10-x64;osx.10.11-x64</runtimeidentifiers>
 </propertygroup>
Copier après la connexion


  通过如下命令发布各平台的目标可执行文件:


dotnet build -r win10-x64
dotnet build -r osx.10.11-x64
Copier après la connexion


  上面的命令可以生成带有符号文件和调试信息的DEBUG版本,你的应用程序将生成在.\bin\Debug\netcoreapp1.0\目录下,如果想生成生产环境的最终版本请通过如下命令获取:


dotnet publish -c release -r win10-x64
dotnet publish -c release -r osx.10.11-x64
Copier après la connexion


  通过上述命令生成的Release版本目标执行文件将生成在 .\bin\release\netcoreapp1.0\目录下,并且每一个目标平台目录下都有生成的可执行文件、发布项目的程序集、.NET Core依赖或必要的文件来保证生成程序的独立可执行。

  我们来看一个新的csproj文件的完整定义:

Comment .NET Core publie les fichiers exécutables dans le nouveau système de projet (.csproj)

<project>
  <import></import>
  <propertygroup>
    <outputtype>Exe</outputtype>
    <targetframework>netcoreapp1.0</targetframework>
    <versionprefix>1.0.0</versionprefix>
    <debugtype>Portable</debugtype>
    <runtimeidentifiers>win10-x64;osx.10.11-x64</runtimeidentifiers>
  </propertygroup>
  <itemgroup>
    <compile></compile>
    <embeddedresource></embeddedresource>
  </itemgroup>
  <itemgroup>
    <packagereference>
      <version>1.0.1</version>
    </packagereference>
    <packagereference>
      <version>9.0.1</version>
    </packagereference>
    <packagereference>
      <version>1.0.0-alpha-20161102-2</version>
      <privateassets>All</privateassets>
    </packagereference>
  </itemgroup>

  <import></import>
</project>
Copier après la connexion

Comment .NET Core publie les fichiers exécutables dans le nouveau système de projet (.csproj)

三、RID

  RID是Runtime Identifier的缩写,它用于定义目标操作系统标示。RID会不断的更新,我们可以在CoreFx项目中找到RID定义,常用的RID有如下:

  Windows RIDs

  • Windows 7 / Windows Server 2008 R2

    • win7-x64

    • win7-x86

  • Windows 8 / Windows Server 2012

    • win8-x64

    • win8-x86

    • win8-arm

  • Windows 8.1 / Windows Server 2012 R2

    • win81-x64

    • win81-x86

    • win81-arm

  • Windows 10 / Windows Server 2016

    • win10-x64

    • win10-x86

    • win10-arm

    • win10-arm64

  Linux RIDs

  • Red Hat Enterprise Linux

    • rhel.7.0-x64

    • rhel.7.1-x64

    • rhel.7.2-x64

  • Ubuntu

    • ubuntu.14.04-x64

    • ubuntu.14.10-x64

    • ubuntu.15.04-x64

    • ubuntu.15.10-x64

    • ubuntu.16.04-x64

    • ubuntu.16.10-x64

  • CentOS

    • centos.7-x64

  • Debian

    • debian.8-x64

  • Fedora

    • fedora.23-x64

    • fedora.24-x64

  • OpenSUSE

    • opensuse.13.2-x64

    • opensuse.42.1-x64

  • Oracle Linux

    • ol.7-x64

    • ol.7.0-x64

    • ol.7.1-x64

    • ol.7.2-x64

  • Dérivés Ubuntu actuellement pris en charge

    • linuxmint.17-x64

    • linuxmint.17.1-x64

    • linuxmint.17.2-x64

    • linuxmint.17.3-x64

    • linuxmint.18-x64

RID OS X

  • osx.10.10-x64

  • osx.10.11-x64

  • osx.10.12-x64

4. Dépendances du système

Le fichier exécutable de la plate-forme cible publié doit également s'appuyer sur les fonctionnalités du système :

Windows Ubuntu CentOS

OS X

 
  • Visual C++ Redistributable 

  • for Visual Studio 2015

 
  • libunwind8

  • libunwind8-dev

  • gettext

  • libicu-dev

  • liblttng-ust-dev

  • libcurl4-openssl-dev

  • libssl-dev

  • uuid-dev

  • unzip

 
  • deltarpm

  • epel-release

  • unzip

  • libunwind

  • gettext

  • libcurl-devel

  • openssl-devel

  • zlib

  • libicu-devel

 

 

 

  • libssl version 1.0.1

 



Windows


Ubuntu CentOS OS X Redistribuable Visual C++ pour Visual Studio 2015 libunwind8 libunwind8-devgettextlibicu-devliblttng-ust-devlibcurl4-openssl-devlibssl-dev uuid-devunzip deltarpmepel-releaseunziplibunwindgettext libcurl-developenssl-develzliblibicu-devel libssl version 1.0.1

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Déclaration d'indépendance des applications Python : le chemin vers la liberté de PyInstaller Déclaration d'indépendance des applications Python : le chemin vers la liberté de PyInstaller Feb 20, 2024 am 09:27 AM

PyInstaller : Indépendance des applications Python PyInstaller est un outil de packaging Python open source qui regroupe les applications Python et leurs dépendances dans un fichier exécutable indépendant. Ce processus élimine la dépendance à l'égard de l'interpréteur Python tout en permettant aux applications de s'exécuter sur diverses plates-formes, notamment Windows, MacOS et Linux. Processus de packaging Le processus de packaging de PyInstaller est relativement simple et implique les étapes suivantes : L'option pipinstallpyinstallerpyinstaller--onefile--windowedmain.py--onefile crée un seul fichier.

Qu'est-ce qu'un fichier exécutable Linux ? Qu'est-ce qu'un fichier exécutable Linux ? Mar 09, 2023 am 10:00 AM

Sous Linux, un fichier exécutable signifie que le fichier peut être exécuté et que le fichier dispose des autorisations « x » ; le fichier exécutable peut être un fichier de code (fichier de script) ou un fichier binaire. Il existe deux manières d'exécuter un fichier : 1. Utilisez l'interpréteur pour exécuter le fichier directement ; 2. Utilisez « ./ » pour exécuter le fichier, et la syntaxe est « ./ nom de fichier ».

L'évolution ultime des applications Python : PyInstaller sort du cocon et devient un papillon L'évolution ultime des applications Python : PyInstaller sort du cocon et devient un papillon Feb 19, 2024 pm 03:27 PM

PyInstaller est un outil révolutionnaire qui permet aux applications Python d'aller au-delà de leur forme de script d'origine. En compilant le code Python dans des fichiers exécutables autonomes, PyInstaller ouvre un nouveau domaine de distribution, de déploiement et de maintenance de code. D'un simple script à une application puissante Autrefois, les scripts Python n'existaient que dans un environnement Python spécifique. La distribution d'un tel script nécessite que les utilisateurs installent Python et les bibliothèques nécessaires, ce qui est un processus long et fastidieux. PyInstaller introduit le concept de packaging, combinant le code Python avec toutes les dépendances requises dans un seul fichier exécutable. L’art du packaging de code Le travail de PyInstaller

Quelle commande sous Linux Quelle commande sous Linux Mar 21, 2024 am 09:50 AM

Titre : Extrait de LinuxWhichCommand : Un tutoriel pratique avec des exemples d'utilisation de la commande « which » sous Linux et comment trouver divers exécutables et scripts à partir de la variable PATH. Lien permanent : linux-which-command Catégorie : Commandes Linux Dans ce guide, nous découvrirons la commande « Which » sous Linux. Conditions préalables : Pour effectuer les étapes illustrées dans ce guide, vous avez besoin des composants suivants : Un système Linux correctement configuré. À des fins de test, il est recommandé d'utiliser LinuxVM. Avoir une compréhension de base de l'interface de ligne de commande dont les systèmes Linux modernes sont livrés avec plusieurs outils intégrés qui peuvent être utilisés pour diverses tâches telles que l'administration système,

Une soirée déguisée pour le code Python : le majordome élégant de PyInstaller Une soirée déguisée pour le code Python : le majordome élégant de PyInstaller Feb 19, 2024 pm 06:39 PM

Dans le monde du développement logiciel, regrouper le code dans un fichier exécutable est une étape cruciale. Pour les développeurs Python, PyInstaller se distingue comme leur majordome élégant qui transforme les scripts Python en applications autonomes et faciles à déployer. Le charme de PyInstaller PyInstaller est un outil puissant qui peut regrouper le code Python et ses dépendances dans un seul fichier exécutable. Il élimine la tâche fastidieuse d'installation de l'interpréteur Python et des bibliothèques dépendantes sur la machine cible, facilitant ainsi le déploiement d'applications. Empaqueter une application à l'aide de PyInstaller Pour empaqueter une application à l'aide de PyInstaller, suivez ce qui suit

Comment utiliser PyCharm pour empaqueter du code dans un fichier exécutable : explication détaillée des techniques d'empaquetage de projet Comment utiliser PyCharm pour empaqueter du code dans un fichier exécutable : explication détaillée des techniques d'empaquetage de projet Feb 02, 2024 pm 09:20 PM

Compétences en matière d'empaquetage de projets PyCharm : vous apprendre à empaqueter le code dans des fichiers exécutables Introduction : Dans le processus de développement logiciel, l'empaquetage du code dans des fichiers exécutables est une étape très importante. Il permet à nos applications de s’exécuter plus facilement sur différentes machines, tout en protégeant notre code des modifications. Cet article explique comment utiliser PyCharm pour empaqueter le code Python dans un fichier exécutable et fournit des exemples de code spécifiques. Texte : 1. Installez PyInstallerPyInstaller

Conseils de programmation PyCharm : regroupez les programmes Python dans des fichiers exécutables indépendants Conseils de programmation PyCharm : regroupez les programmes Python dans des fichiers exécutables indépendants Feb 21, 2024 am 08:54 AM

Avec le développement continu de la programmation Python, les développeurs sont souvent confrontés à une question : comment regrouper leurs programmes Python dans des fichiers exécutables indépendants pour un partage et un déploiement faciles ? Cela implique une compétence importante dans PyCharm : empaqueter des programmes Python. Cet article partagera quelques conseils de programmation PyCharm et vous apprendra comment utiliser PyCharm pour regrouper des programmes Python dans des fichiers exécutables indépendants. Préparation Avant de commencer, assurez-vous d'avoir installé PyCharm et le tiers requis

Super transformation des applications Python : la baguette magique de PyInstaller Super transformation des applications Python : la baguette magique de PyInstaller Feb 19, 2024 pm 04:39 PM

Python est un langage de programmation puissant largement utilisé dans divers domaines. Cependant, lorsque vous devez déployer votre application Python sur d'autres ordinateurs, vous serez confronté au problème des scripts non exécutables. Pour résoudre ce problème, PyInstaller a vu le jour. Il s'agit d'un excellent outil qui convertit les scripts Python en fichiers exécutables autonomes, permettant à votre application de s'exécuter sur n'importe quel ordinateur sans avoir besoin d'installer un interpréteur Python. La transformation magique de PyInstaller, PyInstaller, fonctionne simplement et efficacement. Il crée un fichier exécutable en utilisant le code Python, les bibliothèques requises et toutes les dépendances. Cet exécutable contient tous les composants nécessaires à l'application

See all articles