天天看点

ASP.NET Core 指定环境发布(hosting environment)

ASP.NET Core 应用程序发布命令:

发布示例命令(生成在<code>bin/release/netcoreapp1.1/publish</code>目录下):

上面命令并没有指定<code>EnvironmentName</code>发布,什么意思呢?比如 ASP.NET Core 应用程序中的<code>appsettings.json</code>配置,测试环境和生产环境配置并不相同(比如数据库连接字符串),如果用上面的发布命令,我们还需要手动拷贝下不同环境的<code>appsettings.json</code>文件,以后要更改了,还需要再进行发布更新,很麻烦。

怎么解决上面的问题,很简单,指定下开发机或者服务器的<code>ASPNETCORE_ENVIRONMENT</code>环境变量,设置环境变量之后,执行<code>dotnet *.dll</code>启动程序的时候,ASP.NET Core 会自动加载此环境变量对应的<code>appsettings.*.json</code>文件,比如<code>appsettings.Production.json</code>。

ASP.NET Core 指定环境发布(hosting environment)

其实,我们使用 VS 2017 F5 调试项目的时候,也会默认设置<code>ASPNETCORE_ENVIRONMENT</code>环境变量的,比如 ASP.NET Core 应用程序中的<code>launchSettings.json</code>示例配置:

<code>Startup</code>示例配置:

因为上面配置中,<code>ASPNETCORE_ENVIRONMENT</code>设置的是<code>Development</code>,我们在使用 VS 2017 F5 调试项目,会加载和使用项目下的<code>appsettings.Development.json</code>配置文件,如果不存在此文件,ASP.NET Core 默认会使用<code>appsettings.json</code>配置文件。

那我们怎么在服务器上设置<code>ASPNETCORE_ENVIRONMENT</code>环境变量呢?很简单,敲个命令就可以了。

命令行:

或者(需要管理员权限)

<code>PowerShell</code>命令:

Windows 设置环境命令后,需要重新再开一个命令行<code>dotnet *.dll</code>启动项目,才会有效。

<code>dotnet *.dll</code>启动项目的时候,我们可以看到当前的<code>Hosting environment</code>,以便检查是否正确,示例:

<code>本文转自田园里的蟋蟀博客园博客,原文链接:http://www.cnblogs.com/xishuai/p/asp-net-core-set-hosting-environment-with-publish.html,如需转载请自行联系原作者</code>

<code></code>