.NET 是完全开源的,而且 .NET Core 是一个您可以免费下载的开源与跨平台 framework。您可以到 http://dot.net 获取 Mac、Windows 与大多数的 Unix 系统的版本。还可以使用免费、跨平台的 Visual Studio Code,用VS code您就可以随时随地编写 C# 与 F#。

  有两种方式来部署一个 .NET Core 应用程序,FDD 与 SCD。三个字的缩写可能看不懂,它们的意思是 Framework-dependent 与 Self-contained。当 .NET Core 安装在 Windows 中,它会存放在 C:\Program Files\dotnet。在「shared」文件夹内会有一堆可以共享的 .NET 程序集。这里可以有多个文件夹,就如同下图,您可以看到我的文件夹。您也可以安装多个 .NET Core 的不同版本。

  当您安装您的应用程序与它的 dependencies 而并非 .NET Core 本身,这时您就会需要 .NET Core 已经被安装在目标的机器上。对于 Web App 或有很多应用程序的系统来说并没有什么问题,但如果我想要写一个应用程序,而且只用一个 zip 压缩包给你或在u盘上,而我就想要它能运行。我将会包含 .NET Core 在其中,而整个应用就是 Self Contained 部署。

  而这样将会使我的「Hello World」应用程序变得大于我使用现存的 system-wide 安装,但我知道它就是可以 Work,因为它将会是完全独立的。

  如果我以 self-contained 的方式来部署我的应用程序,有一点很重要的是,我将会有责任要维护 .NET Core 并让它保持在最新的版本。我还需要提前决定我的目标平台。如果我想要让它在 Windows、Mac 与 Linux 上执行成功,我将需要囊括那些目标平台并为它们构建部署套装。这些大多都很直观,不过还是知道一下比较好。

  我将拿我的小小应用程序(我只是用一个「dotnet new」的应用程序)并在文本编辑器中修改 project.json。

  我的应用程序是一个 .NETCore.App,但它将不会使用已经安装的 .NET Core 平台。它将使用本地版本,所以我从这个 dependency 删除「type=’platform’」。

"frameworks": {  "netcoreapp1.0": {    "dependencies": {      "Microsoft.NETCore.App": {        "version": "1.0.1"}}}
}

  接下来我写了一个 runtimes 的部分来指定我想要针对哪些平台。而这里有一个全部 Runtime ID 的清单。

"runtimes": {     "win10-x64": {},     "osx.10.10-x64": {},  "ubuntu.14.04-x64": {}}

  在执行「dotnet restore」您会想要像这样构建:

dotnet build -r win10-x64
dotnet build -r osx.10.10-x64
dotnet build -r ubuntu.14.04-x64

  然后发布版本在您测试之后。

dotnet publish -c release -r win10-x64
dotnet publish -c release -r osx.10.10-x64
dotnet publish -c release -r ubuntu.14.04-x64

  一旦这个完成,我就有了我的应用程序独立在 n 个文件夹,并准备好部署到任何我想要的系统。

  您可以在 Win10 文件夹看到我的「MYAPPLICATION.exe」(我的叫做 scd.exe)可以直接执行,而并非像开发者那样用「dotnet run」来执行。

  在 .NET Core Docs 里有许多不错的文章,教您如何调整与精准地定义要为您的 self contained 应用程序部署什么。您可以对.NET Core 做大量的修整,而有人说那将会变得越来越自动化在未来,有可能下到方法等级。

原文地址:https://blogs.msdn.microsoft.com/msdntaiwan/2016/09/20/selfcontainednetcoreapplications/


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

自包含 .NET Core应用程序相关推荐

  1. 在ASP.NET Core应用程序中使用分布式缓存

    本文要点 ASP.NET Core内置了分布式缓存接口. 分布式缓存的主要好处有性能.数据共享和稳定性. Couchbase服务器是一个内存优先的数据库,非常适合作为分布式缓存. NuGet程序包使得 ...

  2. netcore更新dll要停止_使 .NET Core 应用程序容器化

    在本教程中,你将了解如何使用 Docker 容器化 .NET Core 应用. 容器具有很多特性和优点,如具有不可变的基础结构.提供可移植的体系结构和实现可伸缩性. 此影像可用于为本地开发环境.私有云 ...

  3. 【实验手册】使用Visual Studio Code 开发.NET Core应用程序

    .NET Core with Visual Studio Code 目录 概述... 2 先决条件... 2 练习1: 安装和配置.NET Core以及Visual Studio Code 扩展... ...

  4. 使用插件创建 .NET Core 应用程序

    使用插件创建 .NET Core 应用程序 本教程展示了如何创建自定义的  AssemblyLoadContext  来加载插件.AssemblyDependencyResolver  用于解析插件的 ...

  5. 5种设置ASP.NET Core应用程序URL的方法

    默认情况下,ASP.NET Core应用程序监听以下URL: •http://localhost:5000•https://localhost:5001 在这篇文章中,我展示了5种不同的方式来更改您的 ...

  6. 将终结点图添加到你的ASP.NET Core应用程序中

    在本文中,我将展示如何使用DfaGraphWriter服务在ASP.NET Core 3.0应用程序中可视化你的终结点路由.上面文章我向您演示了如何生成一个有向图(如我上篇文章[译]使用DOT语言和G ...

  7. 使用Azure Application Insignhts监控ASP.NET Core应用程序

    Application Insignhts是微软开发的一套监控程序.他可以对线上的应用程序进行全方位的监控,比如监控每秒的请求数,失败的请求,追踪异常,对每个请求进行监控,从http的耗时,到SQL查 ...

  8. 使用Helm将ASP.NET Core应用程序部署到Kubernetes容器集群

    在<容器化单页面应用中RESTful API的访问>以及<容器化单页面应用中Nginx反向代理与Kubernetes部署>两篇文章中,我介绍了一套容器化ASP.NET Core ...

  9. 使用 Docker 在 Linux 上托管 ASP.NET Core 应用程序

    说在前面 在阅读本文之前,您必须对 Docker 的中涉及的基本概念以及常见命令有一定了解,本文侧重实战,不会对相关概念详述. 同时请确保您本地开发机器已完成如下安装: Docker 18.06 或更 ...

最新文章

  1. MySQL时间段datetime格式查询比较 -易犯错误解决
  2. Ybquery项目部署idea
  3. java过滤器应用实例_Servlet过滤器Filter的简单介绍(附示例)
  4. java基础50道编程题
  5. python代码运行顺序_python 代码运行顺序问题?
  6. Oracle 逗号分割的字符串转换为可放入in的语句
  7. Pycharm汉化包+操作步骤
  8. 【国科大】计算机类课程点评(更新中)
  9. 一次让你搞懂Android应用签名
  10. 文字编码和Unicode
  11. OCR扫描识别录入之汽车车架号(VIN码)识别查询系统
  12. opencore 引导 近完美 黑苹果EFI(技嘉H310/I5-9400F/RX560D)
  13. Matlab之数据筛选
  14. 【C语言】简易版_飞机小游戏
  15. Anycloud平台LOGO生成方法
  16. 小白对于Linux的学习
  17. 被拿走的雨伞——我想到的
  18. 日历组件(可加上一年下一年))
  19. ps快捷键对应的英文字母缩写
  20. Pillow库的用法

热门文章

  1. 系统集成相关岗位理解
  2. 让未备案的网站先飙起来
  3. insert /*+ APPEND */
  4. SQLite.NET (32位) 在64位环境中无法正常调试
  5. ftp服务器搭建遇到的问题
  6. SharePoint 2007 Select People and Groups中搜索不到其他Domain账户的问题[已解决]
  7. Delphi 与 DirectX 之 DelphiX(46): TDIB.DoAntiAlias;
  8. ABP vNext微服务架构详细教程——项目部署
  9. C#中的表达式和运算符
  10. 使用Brighter实现轻量型独立管道