dotnet publish命令详细介绍

作者 the7
发布于 2020年01月18日
评论 0
浏览 200

dotnet publish命令在线生成工具>>>

发布.NET Core应用时,除了IDE集成的发布功能外,我们还可以用 dotnet publish命令以达到更精细化操作,dotnet publish可以将应用及其依赖文件打包并放入一个文件夹,以便我们部署至生产环境。

在打包后的文件夹下,我们可以看到

  • 项目产生的dll文件
  • deps.json 文件,包含了项目所有依赖项
  • runtimeconfig.json 指定了应用程序使用的共享运行时以及运行时的其他配置项(如:垃圾回收类型)
  • 项目依赖文件(来自于Nuget缓存)

注意,在.NET Core 2.0之后,dotnet publish已经不再需要先执行 dotnet restore了。

dotnet publish命令格式

dotnet publish 
[-h|--help] 
[<PROJECT>] 
[-c|--configuration] 
[-f|--framework] 
[--force] 
[--manifest] 
[--no-build] 
[--no-dependencies]
[--no-restore] 
[-o|--output] 
[-r|--runtime] 
[--self-contained] 
[-v|--verbosity] 
[--version-suffix]

-h|help

获取帮助

PROJECT

要发布的项目,可以是.csproj文件路径,也可以是包含.csproj的文件夹路径,如果不配置,默认发布当前目录下的项目。

-c|--configuration

定义生成配置,有 debug 和 release 两个选项。不配置的话,默认为debug。

-f|--framework

指定目标框架,选项有netcoreapp2.2,netcoreapp3.0,netcoreapp3.1。如果要发布与项目文件.csproj文件TargetFramework不一样的版本,这里就需显示指定一下

--force

重新解析所有依赖,即便你刚执行过 dotnet restore (与删除project.assets.json等效)

--manifest

指定一个或多个目标清单。

--no-build

发布前不构建

--no-dependencies

只针对根目录的项目,如果你根目录项目依赖了项目A,那么项目A是不会包含进来的。

--no-restore

不执行 restore

-o|--output

输出目录,如果不指定位置,默认在当前目录的bin目录下。如果发布成Self-Contained ,则在 ./bin/[configuration]/[framework]/[runtime]/publish/ 。否则就在 /bin/[configuration]/[framework]/publish/

-r|--runtime

指定运行时,常见有 linux-x64 win10-x64等。

-v|--verbosity

配置打包时信息打印级别,可选项有5项。
q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]。从名字可以看出,越往后显示的信息越详细,如果发布遇到错误,可以更改级别,方便排错。

--version-suffix

配置版本后缀,比如项目中配置的版本是 1.2.*,如果你指定版本后缀为6,那么发布后的版本就是 1.2.6

--self-contained

如果目标机器没有安装.net core运行时,可以使用此选项,发布后可直接运行于目标机器。

4条评论

  • 念往昔丶繁华竞逐

    2019年5月20日

    最后一个五官很漂亮,虽然脸稍微大了一点点,但也算普通人里漂亮的
  • Eleven

    2019年5月20日

    念往昔丶繁华竞逐:
    最后一个五官很漂亮,虽然脸稍微大了一点点,但也算普通人里漂亮的...
    这帖子真的是精品。美中不足的是,为什么要用繁体,虽然能看懂,但有些麻烦呀。
  • SukiU

    2019年5月20日

    我曾在某外企互联网公司工作过一段时间,他们就是那种工作时间聊天摸鱼,下班时间拼命工作,然后加班蹭加班费和补贴😂
微信公众号
站长帮
微信公众号,每日更新!