Bud*_*ril 7 c# build .net-core asp.net-core-webapi
我们有一个 .net 核心 Web 应用程序,我们正在构建一个自动部署过程。从我在这个网站上读到的,我看到了:
dotnet build 的产品还没有准备好转移到另一台机器上运行。这与 .NET Framework 的行为形成对比,在该行为中,构建可执行项目(应用程序)会生成可在安装了 .NET Framework 的任何计算机上运行的输出。
因此,如果我在目标机器上安装了 .net core 运行时,是否可以使用 build 命令的输出?因为使用此命令,输出不包含额外的文件夹(本地化 dll、运行时文件夹等)...
另外,是否有一个参数可以与 dotnet build 命令一起使用,以便在输出文件夹中只有 MyStartupProject.runtimeconfig.json 而不是所有 runtimeconfig.json 文件(来自所有项目以及 runtimeconfig.dev.json 的版本) )?
dotnet publish 会做你想做的
该dotnet publish命令将对您的应用程序进行完整打包,准备好在 UAT 或生产环境中运行。
上一段中的链接是 .NET Core 2.x,但是 .NET Core 1.x 的过程非常相似。链接页面在一系列选项卡中包含 .NET Core 1.x 和 2.x 的说明。
发布命令有几个可能的参数,这些将取决于您希望如何托管您的应用程序。例如,--self-contained将相关的 .NET Core 运行时与您的应用程序打包在一起,以便它可以“按原样”推送到服务器,而无需安装运行时。
在-r|--runtime <RUNTIME_IDENTIFIER>可能是有用的,太。文档(之前链接)以下列方式解释它
发布给定运行时的应用程序。这在创建独立部署 (SCD) 时使用。有关运行时标识符 (RID) 的列表,请参阅RID 目录。默认是发布依赖于框架的部署 (FDD)。
您还需要考虑使用--configuration开关,提供Debug或Release- 最好是Release. 这基本上与在 Visual Studio 中的 Debug 或 Release 中构建相同,除了这将在发布操作之前发生。
以下是dotnet publish官方文档中对命令的描述:
dotnet publish 编译应用程序,读取其在项目文件中指定的依赖项,并将生成的文件集发布到目录。输出将包含以下内容:
- 具有 dll 扩展名的程序集中的中间语言 (IL) 代码。
- .deps.json 文件,包含项目的所有依赖项。
- .runtime.config.json 文件,指定应用程序期望的共享运行时,以及运行时的其他配置选项(例如,垃圾收集类型)。
应用程序的依赖项。这些内容从 NuGet 缓存复制到输出文件夹中。
dotnet publish 命令的输出已准备好部署到托管系统(例如,服务器、PC、Mac、笔记本电脑)以供执行,并且是为部署准备应用程序的唯一官方支持的方式。根据项目指定的部署类型,托管系统可能安装也可能没有安装 .NET Core 共享运行时。有关详细信息,请参阅.NET Core 应用程序部署。有关已发布应用程序的目录结构,请参阅目录结构。
| 归档时间: |
|
| 查看次数: |
9510 次 |
| 最近记录: |