目次
一、前言
二、生成可执行
三、RID
ホームページ バックエンド開発 C#.Net チュートリアル .NET Core が新しいプロジェクト システム (.csproj) で実行可能ファイルを公開する方法

.NET Core が新しいプロジェクト システム (.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>
ログイン後にコピー


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


dotnet build -r win10-x64
dotnet build -r osx.10.11-x64
ログイン後にコピー


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


dotnet publish -c release -r win10-x64
dotnet publish -c release -r osx.10.11-x64
ログイン後にコピー


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

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

.NET Core が新しいプロジェクト システム (.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>
ログイン後にコピー

.NET Core が新しいプロジェクト システム (.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-x64ubuntu.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

  • Currently supported Ubuntu derivatives

    • linuxmint.17-x64

    • linuxmint.17.1-x64

    • linuxmint.17.2-x64

    • linuxmint.17.3-x64

    • linuxmint.18-x64

  OS X RIDs

  • osx.10.10-x64

  • osx.10.11-x64

  • osx.10.12-x64

ubuntu.16.10-x64

CentOS

    centos.7-x64fedora.23-x64
    Debian
      debian.8-x64

      Fedora

          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

            • 現在サポートされている Ubuntu派生物
              • linuxmint.17-x64
            • linuxmint。 17.1-x64
          linuxmint.17.2-x64
          • linuxmint.17.3-x64
          • linuxmint.18- x64
          • OS X RIDs

          • osx.10.10-x64

          • osx.10.11-x64

          • osx.10.12-x64

          • 四、システム依存赖
          • 発行可能な目标平台可走行文件、また必要依存システム统特性、次下来我们来看下システム统的需要含まれるコンポーネント:

          Windows

          Ubuntu

          • CentOS

          OS X



          Visual Studio 2015 用 Visual C++ 再頒布可能パッケージ

          🎜🎜 🎜🎜🎜 🎜🎜🎜libunwind8🎜🎜🎜🎜libunwind8-dev🎜🎜🎜🎜gettext🎜🎜🎜🎜libicu-dev🎜🎜🎜🎜liblttng-ust-dev🎜 🎜🎜🎜libcurl4-openssl-dev🎜🎜🎜🎜libssl- dev🎜🎜🎜🎜uuid-dev🎜🎜🎜🎜unzip🎜🎜🎜🎜🎜 🎜🎜🎜deltarrpm🎜🎜🎜🎜epel-release🎜🎜🎜🎜unzip🎜 🎜🎜🎜libunwind🎜🎜🎜🎜gettext🎜🎜🎜🎜libcurl- devel🎜🎜🎜🎜openssl-devel🎜🎜🎜🎜zlib🎜🎜🎜🎜libicu-devel🎜🎜🎜🎜🎜🎜 🎜🎜 🎜🎜 🎜🎜🎜 🎜libssl バージョン 1.0.1🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜

          以上が.NET Core が新しいプロジェクト システム (.csproj) で実行可能ファイルを公開する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

          このウェブサイトの声明
          この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

          ホットAIツール

          Undresser.AI Undress

          Undresser.AI Undress

          リアルなヌード写真を作成する AI 搭載アプリ

          AI Clothes Remover

          AI Clothes Remover

          写真から衣服を削除するオンライン AI ツール。

          Undress AI Tool

          Undress AI Tool

          脱衣画像を無料で

          Clothoff.io

          Clothoff.io

          AI衣類リムーバー

          AI Hentai Generator

          AI Hentai Generator

          AIヘンタイを無料で生成します。

          ホットツール

          メモ帳++7.3.1

          メモ帳++7.3.1

          使いやすく無料のコードエディター

          SublimeText3 中国語版

          SublimeText3 中国語版

          中国語版、とても使いやすい

          ゼンドスタジオ 13.0.1

          ゼンドスタジオ 13.0.1

          強力な PHP 統合開発環境

          ドリームウィーバー CS6

          ドリームウィーバー CS6

          ビジュアル Web 開発ツール

          SublimeText3 Mac版

          SublimeText3 Mac版

          神レベルのコード編集ソフト(SublimeText3)

          Linux 実行可能ファイルとは何ですか? Linux 実行可能ファイルとは何ですか? Mar 09, 2023 am 10:00 AM

          Linux では、実行可能ファイルは、ファイルが実行可能であり、ファイルに「x」権限があることを意味します。実行可能ファイルは、コード ファイル (スクリプト ファイル) またはバイナリ ファイルです。ファイルを実行するには 2 つの方法があります: 1. インタプリタを使用してファイルを直接実行する; 2. 「./」を使用してファイルを実行し、構文は「./ ファイル名」です。

          Python アプリケーションの独立宣言: PyInstaller の自由への道 Python アプリケーションの独立宣言: PyInstaller の自由への道 Feb 20, 2024 am 09:27 AM

          PyInstaller: Python アプリケーションの独立性 PyInstaller は、Python アプリケーションとその依存関係を独立した実行可能ファイルにパッケージ化するオープンソースの Python パッケージ化ツールです。このプロセスにより、Python インタープリターへの依存が排除され、Windows、MacOS、Linux などのさまざまなプラットフォームでアプリケーションを実行できるようになります。パッケージ化プロセス PyInstaller のパッケージ化プロセスは比較的単純で、次の手順が含まれます。 pipinstallpyinstallerpyinstaller--onefile--windowedmain.py--onefile オプションは、単一のファイルを作成します。

          Python アプリケーションの究極の進化: PyInstaller は繭から現れ、蝶になります Python アプリケーションの究極の進化: PyInstaller は繭から現れ、蝶になります Feb 19, 2024 pm 03:27 PM

          PyInstaller は、元のスクリプト形式を超えて Python アプリケーションを強化する革新的なツールです。 Python コードをスタンドアロンの実行可能ファイルにコンパイルすることにより、PyInstaller はコードの配布、展開、およびメンテナンスの新しい領域を解放します。単一のスクリプトから強力なアプリケーションへ これまで、Python スクリプトは特定の Python 環境にのみ存在していました。このようなスクリプトを配布するには、ユーザーが Python と必要なライブラリをインストールする必要がありますが、これは時間がかかり面倒なプロセスです。 PyInstaller では、Python コードと必要なすべての依存関係を単一の実行可能ファイルに結合する、パッケージ化の概念が導入されています。 PyInstaller の作業をパッケージ化するコードの芸術

          Linux のどのコマンド Linux のどのコマンド Mar 21, 2024 am 09:50 AM

          タイトル: LinuxWhichCommand からの抜粋: Linux での「that」コマンドの使用例と、PATH 変数からさまざまな実行可能ファイルやスクリプトを見つける方法を例に挙げた実践的なチュートリアル。固定リンク: linux-that-c​​ommand カテゴリー: Linux コマンド このガイドでは、Linux の「Which」コマンドについて学びます。前提条件: このガイドで説明する手順を実行するには、次のコンポーネントが必要です。 適切に構成された Linux システム。テスト目的では、LinuxVM を使用することをお勧めします。コマンド ライン インターフェイスの基本を理解してください。最新の Linux システムには、システム管理などのさまざまなタスクに使用できる複数のツールが組み込まれています。

          Python コードの着せ替えパーティー: PyInstaller のスタイリッシュな執事 Python コードの着せ替えパーティー: PyInstaller のスタイリッシュな執事 Feb 19, 2024 pm 06:39 PM

          ソフトウェア開発の世界では、コードを実行可能ファイルにパッケージ化することは重要なステップです。 Python 開発者にとって、PyInstaller は、Python スクリプトをスタンドアロンで展開しやすいアプリケーションに変換するスタイリッシュな執事として際立っています。 PyInstaller の魅力 PyInstaller は、Python コードとその依存関係を 1 つの実行可能ファイルにパッケージ化できる強力なツールです。これにより、ターゲット マシンに Python インタープリターと依存ライブラリをインストールするという面倒な作業が不要になり、アプリケーションの展開が簡単になります。 PyInstaller を使用してアプリケーションをパッケージ化する PyInstaller を使用してアプリケーションをパッケージ化するには、次の手順に従います。

          PyCharm プログラミングのヒント: Python プログラムを独立した実行可能ファイルにパッケージ化する PyCharm プログラミングのヒント: Python プログラムを独立した実行可能ファイルにパッケージ化する Feb 21, 2024 am 08:54 AM

          Python プログラミングの継続的な開発に伴い、開発者はしばしば次のような疑問に直面します。共有と展開を容易にするために、Python プログラムを独立した実行可能ファイルにパッケージ化するにはどうすればよいでしょうか?これには、Python プログラムのパッケージ化という、PyCharm の重要なスキルが関係します。この記事では、PyCharm プログラミングのヒントをいくつか紹介し、PyCharm を使用して Python プログラムを独立した実行可能ファイルにパッケージ化する方法を説明します。準備 開始する前に、PyCharm と必要なサードパーティがインストールされていることを確認してください。

          PyCharm を使用してコードを実行可能ファイルにパッケージ化する方法: プロジェクトのパッケージ化手法の詳細な説明 PyCharm を使用してコードを実行可能ファイルにパッケージ化する方法: プロジェクトのパッケージ化手法の詳細な説明 Feb 02, 2024 pm 09:20 PM

          PyCharm プロジェクトのパッケージ化スキル: コードを実行可能ファイルにパッケージ化する方法を教えます はじめに: ソフトウェア開発プロセスにおいて、コードを実行可能ファイルにパッケージ化することは非常に重要なステップです。これにより、コードを変更から保護しながら、アプリケーションをさまざまなマシン上でより簡単に実行できるようになります。この記事では、PyCharm を使用して Python コードを実行可能ファイルにパッケージ化する方法を紹介し、具体的なコード例を示します。テキスト: 1. PyInstallerPyInstaller をインストールする

          Python の目に見えない変革: PyInstaller の黒魔術 Python の目に見えない変革: PyInstaller の黒魔術 Feb 19, 2024 pm 12:48 PM

          Python は、その豊富なライブラリと使いやすい構文により、開発者の間で最も人気のあるプログラミング言語の 1 つとなっています。ただし、Python アプリケーションをスタンドアロンの実行可能ファイルとしてデプロイする必要がある場合、状況が複雑になる可能性があります。ここで PyInstaller が登場します。これは、スクリプトをスタンドアロンの実行可能プログラムに変換する Python の強力な無料ツールです。 PyInstaller について PyInstaller はクロスプラットフォーム ツールです。つまり、Windows、MacOS、および Linux システムで実行できます。これは、Python アプリケーションとその依存関係を 1 つの実行可能ファイルにパッケージ化することで機能します。この実行可能ファイル

          See all articles