自包含 .NET Core应用程序

  .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跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php如何求同列元素之和_求得这个数组中各个元素之和

给定一个数组:$ar array(1,2,3,4,5);如果要求得这个数组中各个元素之和。方法一、很自然的用foreach实现$sum 0;foreach ($ar as $v) {$sum$v;}echo $sum;方法二、我们可以用array_reduce实现。它是专门用来迭代数组的。该函数最多接收三个参数。第一个参数接收数…

关于Tomcat与MySQL连接池问题的详解

转载自 关于Tomcat与MySQL连接池问题的详解研究了一天,终于有所收获,希望对大家有所帮助。首先请大家注意:这里尤其讨论Tomcat5.5版本中遇到的问题,为什么尤其单对这个版本,我一会儿便加以说明。问题一:C…

ASP.NET Core中间件(Middleware)实现WCF SOAP服务端解析

ASP.NET Core中间件(Middleware)进阶学习实现SOAP 解析。 本篇将介绍实现ASP.NET Core SOAP服务端解析,而不是ASP.NET Core整个WCF host。 因为WCF中不仅仅只是有SOAP, 它还包含很多如消息安全性,生成WSDL,双工信道,非…

java异常了还会往下走吗_异常一个问题,请帮下忙:处理异常后,程序会继续往下运行吗...

import java.util.*;public class PrintBig{public static void main(String[] args){Scanner in new Scanner(System.in);int sum;int count0;System.out.println("输入10个整数");for(int i0;i<10;i){sum in.nextInt();try{Integer k new Integer(sum);}catc…

新闻发布项目——访问温馨提示

1.本项目开发的软件&#xff1a;MyEclipse10.0tomcat7.0sql servel2012 2.本项目所有的CSS下载地址&#xff1a;Jsp实现新闻发布系统的CSS界面 3.本项目所有的JS下载地址&#xff1a;Jsp实现新闻发布系统的JS界面 4.本项目所有的图片下载地址&#xff1a;Jsp实现新闻发布系统的…

Tomcat 使用apr优化

转载自 Tomcat 使用apr优化最近业务服务器出现了一些问题&#xff0c;Nginx傲娇了&#xff0c;准备把加Nginx插件上的一些处理逻辑扔到后端的Tomcat的业务处理里面去&#xff0c;考虑到tomcat目前本来就压力山大&#xff0c;所以弄了弄apr库来优化tomcat的并发能力。&#xf…

ASP.NET Core MVC 配置全局路由前缀

前言 大家好&#xff0c;今天给大家介绍一个 ASP.NET Core MVC 的一个新特性&#xff0c;给全局路由添加统一前缀。严格说其实不算是新特性&#xff0c;不过是Core MVC特有的。 应用背景 不知道大家在做 Web Api 应用程序的时候&#xff0c;有没有遇到过这种场景&#xff0c;就…

java jpa saveall方法优化_JPA批量插入(saveAll)

有时候要从第三方导入数据&#xff0c;一般量都比较大&#xff0c;除了方法用异步线程Async之外&#xff0c;如果每条记录都调用一次save显然对数据库压力很大。可以使用JPA的批量保存方法saveAll(Iterable entities)。由于JPA的批量保存和批量修改是同一个方法&#xff0c;所以…

js截取字符串的后几位数 省份证号*隐藏

js截取字符串的后几位数 代码如下&#xff1a; var str"abcdefghhhh";//截取后4位 str.substring(str.length-4)&#xff1b; js * 代替 var str ’331023187609300311‘&#xff1b; //18位省份证号 前三位显示中间10位有8个*代替后5位显示 331********00…

java 单一职责原则_设计模式之单一职责原则

对类来说&#xff0c;即一个类应用只负责一项职责&#xff0c;如类A负责两个不同的职责&#xff1a;职责1&#xff0c;职责2.当职责1需求变更时&#xff0c;可造成职责2执行错误&#xff0c;所以需要将类A的粒度分解为A1&#xff0c;A2.降低类的复杂度&#xff0c;一个类只负责…

TypeScript 2.0 正式发布

9 月 22 日&#xff0c;TypeScript 2.0 正式发布了。 TypeScript 是微软开发的开源的编程语言&#xff0c;主要负责人是 C# 之父 Anders Hejlsberg。 TypeScript 成功将 JavaScript 的潜能与静态类型结合了起来&#xff0c;而且编译为 JavaScript。编译时类型检查可以避免很多潜…

Tomcat server.xml配置示例

转载自 Tomcat server.xml配置示例几乎所有容器类型的应用都会包含一个名为 server.xml 的文件结构。基本上&#xff0c;其中的每个元数据或者配置都是容器完成初始化所需要的。正是由于这些内容都是可配置的&#xff0c;使得软件设计者或架构师可以在容器运行时或销毁时&am…

日志-周报-月报(2019年2月)

20190203 1.马氏距离找公式 2.ruby先不看吧&#xff0c;先java学着到联通没办法在写ruby 3.舔狗&#xff0c;ppt&#xff0c;进公司考智商&#xff0c;升职靠情商。 4.看德哥看了一天 5.没了 6.联通调岗做销售&#xff0c;华为不续签合同&#xff0c;ppt文化哪家都一样&a…

怎么用php配合js编写动态页面_JavaScript_JavaScript教程:用JS脚本实现Web页面信息交互范例,要实现动态交互,必须掌握有 - phpStudy...

要实现动态交互&#xff0c;必须掌握有关窗体对象(Form)和框架对象(Frames)更为复杂的知识。三、范例下面我们演示通过点击一个按钮(red)来改变窗口颜色&#xff0c;点击“调用动态按钮文档”调用一个动态按钮文档。test8_1.htm//原来的颜色document.bgColor"blue";d…

SignalR的性能监测与服务器的负载测试

前言 也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列.. 先谢谢大家的支持.. 我们来聊聊SignalR的性能监测与服务器的负载测试 我们开发任何一个应用,他的性能监测是很重要的参考数据,关系着我们后期优化,更新,改动..等等... SignalR作为…

在Tomcat配置JNDI数据源的三种方式

转载自 在Tomcat配置JNDI数据源的三种方式在我过去工作的过程中,开发用服务器一般都是Tomcat&#xff0c;数据源的配置往往都是在applicationContext.xml中配置一个dataSource的bean&#xff0c;然后在部署时再修改JNDI配置。我猜是因为Tomcat的配置需要改配置文件&#xff0…

毕业设计word 表格标题 图表标题

图一模一样 生成目录 ************************************************************************************************************************* 生成表目录和图目录 *********************************************************************************************…

php打印 二维数组,PHP中遍历二维数组_以不同形式的输出操作实例

//定义二维索引数组$arr array(array("101","李军","男","1976-02-20","95033"),array("103","陆君","男","1974-06-03","95031"),array("105","匡明&q…