目錄
一、前言
二、生成可执行
三、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-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

  發佈出來的目標平台可執行文件,也是需要依賴系統特性的,接下來我們來看下系統的需要元件有哪些:

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######### #### #####################################

以上是.NET Core如何在新的專案系統中(.csproj)發布可執行文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

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選項建立一個單一

linux 執行檔是什麼 linux 執行檔是什麼 Mar 09, 2023 am 10:00 AM

在linux中,執行檔是指的是該檔案可以被執行,檔案有「x」權限;執行檔可以是一個程式碼檔案(腳本檔案),也可以是一個二進位檔案。一個文件運作有兩種方式:1、用解釋器直接去運行文件;2、利用「./」運行文件,語法「./ 文件名」。

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上使用」which」指令以及如何從PATH變數尋找各種可執行檔和腳本的實用教學以及範例。固定連結:linux-哪個-指令Category:Linux指令在本指南中,我們將了解Linux中的「Which」指令。先決條件:要執行本指南中示範的步驟,您需要以下元件:正確配置的Linux系統。出於測試目的,建議使用LinuxVM對命令列介面有基本了解which命令現代Linux系統都內建了多個工具,可用於各種任務,如係統管理、

Python 程式碼的盛裝派對:PyInstaller 的時尚管家 Python 程式碼的盛裝派對:PyInstaller 的時尚管家 Feb 19, 2024 pm 06:39 PM

在軟體開發的世界中,將程式碼打包成可執行檔是一個至關重要的步驟。對於python開發人員來說,PyInstaller脫穎而出,成為他們的時尚管家,將Python腳本轉化為獨立且易於部署的應用程式。 PyInstaller的魅力PyInstaller是一款強大的工具,可以將Python程式碼及其相依性打包成單一執行檔。它消除了在目標電腦上安裝Python解釋器和依賴函式庫的繁瑣任務,使應用程式的部署變得輕而易舉。使用PyInstaller打包應用程式要使用PyInstaller打包應用程序,請遵循以

如何使用PyCharm將程式碼打包成執行檔:專案打包技巧詳解 如何使用PyCharm將程式碼打包成執行檔:專案打包技巧詳解 Feb 02, 2024 pm 09:20 PM

PyCharm專案打包技巧:教你如何將程式碼打包為執行檔引言:在軟體開發過程中,將程式碼打包為執行檔是一個非常重要的步驟。它可以讓我們的應用程式更方便地在不同的機器上運行,同時也可以保護我們的程式碼不被修改。本文將介紹如何使用PyCharm將Python程式碼打包為可執行文件,並提供具體的程式碼範例。內文:一、安裝PyInstallerPyInstaller

PyCharm程式設計秘技:打包Python程式為獨立執行檔 PyCharm程式設計秘技:打包Python程式為獨立執行檔 Feb 21, 2024 am 08:54 AM

隨著Python程式設計的不斷發展,開發者常常面臨一個問題:如何將自己的Python程式打包成獨立可執行文件,以便於分享和部署?這就牽涉到了PyCharm中的一項重要技能:打包Python程式。本文將分享一些PyCharm程式設計秘籍,教你如何使用PyCharm來打包Python程式為獨立執行檔。準備工作在開始之前,確保你已經安裝好PyCharm以及需要的第三

Python 應用的超變變變:PyInstaller 的魔法棒 Python 應用的超變變變:PyInstaller 的魔法棒 Feb 19, 2024 pm 04:39 PM

python是一種功能強大的程式語言,廣泛應用於各種領域。然而,當您需要將Python應用程式部署到其他電腦時,將面臨腳本不可執行的問題。為了解決這個難題,PyInstaller應運而生。這是一款出色的工具,可以將Python腳本轉換為獨立的可執行文件,讓您的應用程式能夠在任何電腦上運行,無需安裝Python解釋器。 PyInstaller的神奇轉換PyInstaller的工作原理簡單而有效率。它使用Python程式碼、所需的函式庫和所有相依性來建立一個可執行檔。此可執行檔包含應用程式的所有必要元件

See all articles