ASP.NET CORE MVC使用SCD(独立部署)发布

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET CORE MVC使用SCD(独立部署)发布相关的知识,希望对你有一定的参考价值。

简介

Self-contained deployments (SCD), 生成一个可自己执行的文件以及所有依赖, 比如一个xxx.exe和一大堆dll, 直接运行即可, 不需要操作系统安装.net core 运行时

步骤

1、首先创建一个ASP.NET CORE MVC项目

2、右击项目,点击编辑xxx.csproj,在下编辑

<PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <RuntimeIdentifiers>win10-x64;ubuntu.16.04-x64</RuntimeIdentifiers>
  </PropertyGroup>

这样在发布时选择平台时会有win10-x64可以选择

3、要让远程电脑能访问,必须更改可访问的IP地址。在Program.cs文件下更改如下代码,在原有代码下添加.UseUrls()即可

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseUrls("http://*:5000")
                .UseStartup<Startup>();

4、右键项目,点击发布,选择文件夹

5、选择高级,---独立,-----win10-64

6、点击保存,发布即可。

7、发布之后,在生成目录下会有xxx.exe文件生成,点击运行,即可启动服务。

优点

SCD 有很多优点。尽管有多个使 SCD 工作的部分,但作为 .NET CLI 安装的一部分,有两个使其正常运行的重要组件。第一个组件是共享运行时,它是 .NET Core 运行时的可再发行版本,由 CLI 和最终用户使用。第二个组件是共享主机,它负责使用作为发布过程的一部分生成的 DLL。共享主机是泛型 AppHost,它允许任何 .NET Core 库 (DLL) 作为应用程序执行。在执行“dotnet run my.dll”时,my.dll 被托管在此共享主机的内部。在打包 SCD 应用程序时,执行的操作是将共享运行时、共享主机和应用程序 DLL 置于可执行文件包中、适用于 Windows 的 .exe 中或适用于 Linux 和 macOS 的相应可执行文件中。

以上是关于ASP.NET CORE MVC使用SCD(独立部署)发布的主要内容,如果未能解决你的问题,请参考以下文章

[MVC&Core]ASP.NET Core MVC 视图传值入门

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 25. 过滤器

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 14. ASP.NET Core Identity 入门

ASP.NET Core Web 应用程序系列- 在ASP.NET Core中使用Autofac替换自带DI进行批量依赖注入(MVC当中应用)

ASP.NET Core 配置 MVC - ASP.NET Core 基础教程 - 简单教程,简单编程

ASP.NET Core Razor 页面与完整 MVC Core [关闭]