简介

.net core 部署有两种方式,一种是独立式部署(SCD),另一种是框架依赖式部署(FDD)。以SCD方式生成发布包时,dotnet会将所有依赖打包到一个文件夹内,并为应用程序生成可执行文件。以FDD方式部署的程序是不用安装.net core 运行时的,而在FDD模式下需要安装对应版本的.net core 运行时,两者的区别可参考:.net core application deployment。

用VS开发时,默认采用的是FDD模式,但将发布包部署到服务器上时可能会出现以下错误:

assembly specified in the dependencies manifest was not found

导致这个问题的原因是VS默认以 manifest的方式打包,对于本地Store中存在的公共包将不会被包含在发布包中,只会将其记录入*.deps.json文件中。所以当开发机与服务器Store目录中的包不一致时就会出现以上问题。一般的解决办法是将PublishWithAspNetCoreTargetManifest改为false,以停用manifest文件,但这会导致发布包变得无比巨大(虽然比SCD生成的文件少,但也会有200+的文件),当然我们也可以让编译服务器与部署服务器的Store环境一致或指定manifest文件来解决以上问题。对于本地Store的作用可参考: Runtime package store

上文已经了解到Store的作用,其实我们手动将缺少的或未被包含在发布包的中Package拷到Store目录也可以解决问题。既然如此,NuStore作用就是:自动完成deps文件分析并从NuGet中下载依赖包,然后将其放入Store目录,这样发布包只需要包含不属于NuGet的包即可,最大化的减小发布包的体积。

安装

dotnet tool install -g NuStore

更新

dotnet tool update -g NuStore

卸载

dotnet tool uninstall -g NuStore

用法

nustore verb [options]

直接使用nustore restore命令时,工具会加载当前目录中的*.deps.json文件,并将下载的包保存到 usr/local/share/dotnet/store目录(macOS/Linux)或 C:/Program Files/dotnet/store目录中(Windows)。使用nustore --help可获取更多帮助。

.netcore2.1在centos下的安装目录为/usr/share/dotnet/,但微软官方文档为:usr/local/share/dotnet/store。所以在linux环境下使用时,请使用--dir参数指定为正确的目录。

参数

Verbs

  1. restore  下载所有依赖包

  2. minify    精简当前发布包

restore Options

选项

说明

-p  --deps

指定deps文件。默认搜索当前目录中的*.deps.json文件

-d  --dir

将包下载到指定的目录中。默认usr/local/share/dotnet/store目录(macOS/Linux)或 C:/Program Files/dotnet/store目录中(Windows)

-f  --force

是否覆盖已下载的包,默认为否

--nuget

指定NuGet Api服务地址。默认: https://api.nuget.org/v3/index.json

-e  --exclude

排除指定的包,支持正则,多个要件使用分号分隔

-s  --special

下载指定的包,支持正则,多个条件使用分号分隔

--runtime

netcoreapp2.0/netcoreapp2.1,默认从deps文件中分析

--arch

x64/x86,默认从deps文件中分析

--verbosity

显示详细日志

--help

获取restore的帮助信息

当--special与--exclude都存在时,先判断是否为Special包,再判断是否为Exclude包

示例

使用 e:/nustore/test.deps.json依赖文件,排除所有名称以Micosoft.和System开头的包,但下载Microsoft.Extensions.Logging包或其它包。

nustore restore --dir="e:/nustore" --deps="e:/nustore/test.deps.json" --exclude="^microsoft.*;^System.*" -s "Microsoft\.Extensions.Logging"

代码

https://github.com/aspark/nustore

原文地址:https://aspark.gitbook.io/nustore

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

NuStore使用说明相关推荐

  1. abaqus高性能服务器怎么用,高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF...

    高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF 高性能计算平台ABAQUS 任务调度使用说明 作者:陈林 E-Mail:chenlin@ 日期:2017-1-10 ...

  2. linux 文件拷贝并替换,Linux_cmd replace 文件替换使用说明,帮助信息: 复制代码 代码如 - phpStudy...

    cmd replace 文件替换使用说明 帮助信息: 复制代码 代码如下: 替换文件. REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [ ...

  3. Simple Dynamic Strings(SDS)源码解析和使用说明二

    在<Simple Dynamic Strings(SDS)源码解析和使用说明一>文中,我们分析了SDS库中数据的基本结构和创建.释放等方法.本文将介绍其一些其他方法及实现.(转载请指明出于 ...

  4. Delphi开发的IOCP测试Demo以及使用说明。

    Delphi开发的IOCP,此为压力测试Demo和使用说明.

  5. oracle database link mysql_oracle database link使用说明

    oracle database link使用说明 作用: 将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象. 简易语法: CREATE [PUBLIC] ...

  6. 序列拼接工具Bowtie使用说明

    序列拼接工具Bowtie使用说明 2011-06-08 ~ ADMIN Bowtie是一个超级快速的,较为节省内存的短序列拼接至模板基因组的工具.它在拼接35碱基长度的序列时,可以达到每小时2.5亿次 ...

  7. benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明

    关于数据库的压力测试,之前写过3篇Blog: 数据库基准测试(Database Benchmarking) 说明 数据库压力测试工具 -- Hammerdb 使用说明 数据库压力测试工具 -- Swi ...

  8. 计算机网页基础课专业,关于《计算机应用基础》课程网页下的学习资源使用说明....

    关于<计算机应用基础>课程网页下的学习资源使用说明. 关于<计算机应用基础>课程网页下的学习资源使用说明 各位同学:大家好! 07春学期已接近一半的时间了,新生对课程还需要更多 ...

  9. gh ost mysql_MySQL在线DDL gh-ost 使用说明

    3)使用说明:条件是操作的MySQL上需要的binlog模式是ROW.如果在一个从上测试也必须是ROW模式,还要开启log_slave_updates.根据上面的参数说明按照需求进行调整. 环境:主库 ...

最新文章

  1. python基础--函数
  2. 如何看待消息中间件的选型
  3. 服务器手工修改虚拟内存,服务器修改虚拟内存
  4. Java学习从入门到精通
  5. go的25个关键字(保留字)和36个预定标识符
  6. android修改xml变量值,Android中XML的基本操作(增、删、改、查)
  7. Halcon算子翻译——default
  8. Go_ go mod 命令解决墙的问题
  9. C#反射基础理解1(转)
  10. linux mount 日志,mount
  11. 技术篇-符号制作-标记符号制作
  12. Bailian2738 实数加法【数学】
  13. 设计一个具有大纯时延时间的一阶惯性环节的计算机控制系统,计算机控制课程设计——大纯时延一阶惯性环节温度控制系统...
  14. 系统集成项目管理工程师13《项目配置管理》
  15. hao916,hao123,2345.com浏览器劫持-分析与清除
  16. VirtualBox 安装虚拟机步骤
  17. 2020双周训练训练日志
  18. EA 2022 HSN Plugfest- UNH-IOL以太网联盟高速以太网插拔互操作性测试活动[多图] 400G/800G/112G PAM4
  19. 菜鸟成长手册:路由器技术深入剖解
  20. Python 组织机构代码证校验

热门文章

  1. Linux之ACL权限控制
  2. Mysql身份认证漏洞及利用(CVE-2012-2122) 补充测试用例
  3. mysql导入sql脚本命令
  4. Xamarin效果第十四篇之玩耍GIS
  5. 【另类见解】一致性哈希就能解决分库分表问题了?
  6. .NET 大会今日开幕 |这些白嫖福利不看肠子都悔青
  7. 这是“我”的故事 —— 董彬
  8. 企业级精致 Blazor 套件 BootstrapBlazor 介绍
  9. [开源] .Net ORM FreeSql 1.10.0 稳步向前
  10. 一名“企业定制化人才”的自诉:“我不愿意,但却无可奈何”