我正在尝试在我的.net核心2.0应用程序中设置多个环境,请参阅下面的代码.

Configuration file (Launch.JSON)

"configurations": [
    {
        "name": ".NET Core Launch (web)","type": "coreclr","request": "launch","prelaunchTask": "build",// If you have changed target frameworks,make sure to update the program path.
        "program": "${workspaceRoot}/my.api/bin/Debug/netcoreapp2.0/my.api.dll","args": [],"cwd": "${workspaceRoot}/my.api","stopAtEntry": false,"requireExactSource": false,"internalConsoleOptions": "openOnSessionStart","launchbrowser": {
            "enabled": true,"args": "${auto-detect-url}","windows": {
                "command": "cmd.exe","args": "/C start ${auto-detect-url}"
            },"osx": {
                "command": "open"
            },"linux": {
                "command": "xdg-open"
            }
        },"env": {
            "ASPNETCORE_ENVIRONMENT": "Development"
        },"sourceFileMap": {
            "/Views": "${workspaceRoot}/Views"
        }
    },{
        "name": ".NET Core Attach","request": "attach","processId": "${command:pickProcess}"
    }
]

Program.cs

public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();
}

StartUp.cs

public class Startup
{
    public IContainer ApplicationContainer { get; private set; }
    private IHostingEnvironment HostingEnvironment { get; set; }
    public IConfigurationRoot Configuration { get; }
    private string ConnectionString
    {
        get
        {
            return this.HostingEnvironment.IsDevelopment() ? Configuration.GetConnectionString("DefaultConnection") : Configuration.GetConnectionString("Production");
        }
    }
    public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder()  
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json",optional: true,reloadOnChange: true)
            .AddJsonFile($"appsettings.Development.json",reloadOnChange: true)
            .AddJsonFile($"appsettings.Azuredev.json",reloadOnChange: true)
            .AddEnvironmentvariables();

        Configuration = builder.Build();

        this.HostingEnvironment = env;         

        System.Console.WriteLine(env.EnvironmentName); //here it always give me Production.
    }

My issue

我尝试使用命令行,如dotnet run –environment“Development”

因此,它应该在开发环境上运行,但它始终使用Prodution运行,(看看我在startup.cs中添加了console.writeline)

现在奇怪的是,如果我使用F5进行调试,那么它与开发环境完美匹配.

解决方法

您可以更新launchsettings.json以包含“开发”配置文件,然后运行:
dotnet run --launch-profile "Development"

有关launchSettings.json文件配置的更多详细信息,请参阅Working with multiple environments

请注意,commandName可能需要是“Project”(我还没有真正尝试过这么多).示例launchSettings.json如下:

{
  "iisSettings": {
    "windowsAuthentication": false,"anonymousAuthentication": true,"iisExpress": {
      "applicationUrl": "http://localhost:19882/","sslPort": 0
    }
  },"profiles": {
    "Development": {
      "commandName": "Project","launchbrowser": true,"environmentvariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

c# – 在.net Core 2.0中设置环境变量的更多相关文章

  1. ios – 存档期间不存在Xcode环境变量

    我有一个具有TestFlight构建方案的iOS应用程序.在此方案中,我在“运行”选项卡中设置了一个称为TESTFLIGHT的环境变量,值为1.此外,在构建方案的“配置文件”选项卡中,它已选中“使用RUn操作的参数和变量”选项,并在列表中看到相应的EV.当从Xcode运行应用程序时,这可以正常工作,但是当我在存储设备上运行应用程序时,环境变量TESTFLIGHT不存在.我的问题是有一个我在这里缺少的选项/方案选项卡?

  2. Ubantu下配置swift开发环境

    恭喜.现在可以直接在这里写入临时的swift代码,注意是临时的.如果想要写swift,需要新建一个文件,比如touchhello.swift.用vim打开,在里面写入HelloWorld的代码,保存退出.编译上面的代码源文件,打开终端,找到源代码所在目录,输入命令swiftchello.swift,即可编译,如果没有出现错误,则说明编译成功.运行上面的hello,编译之后会出现一个新文件hello;这是ubantu的可执行文件,直接输入./hello即可执行

  3. android – 错误:程序“/ndk-build.cmd”在PATH中找不到

    按钮在出现的框中,选择名称字段并键入NDKROOT.在您解压缩AndroidNDK的路径中的值类型的字段中.点击“应用”,完成,对依赖NDK的任何其他项目进行此操作.

  4. Vue配置环境变量的正确打开方式

    这篇文章主要为大家介绍了Vue配置环境变量,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

  5. NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解

    本篇文章主要介绍了NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  6. window 下 win10 jdk8安装与环境变量的配置过程

    这篇文章主要介绍了window 下 win10 jdk8安装与环境变量的配置,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  7. Java获取环境变量(System.getenv)的方法

    本文主要介绍了Java获取环境变量(System.getenv)的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  8. vue-cli的index.html中使用环境变量方式

    这篇文章主要介绍了vue-cli的index.html中使用环境变量方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  9. 探究Laravel使用env函数读取环境变量为null的问题

    最近在工作中遇到一个问题,不知道大家有没有遇到过,在 Laravel中(除 app/config 目录下的配置文件中)使用env函数读取环境变量,有时有用,有时返回 null,这究竟怎么回事?下面通过这篇文章让我们一探究竟。有需要的朋友们下面来一起看看吧。

  10. Node.js安装、环境变量配置、报错解决方法

    Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台,这篇文章主要介绍了Node.js安装、环境变量配置、报错解决方法,需要的朋友可以参考下

随机推荐

  1. 如何在.NET Core类库中使用System.Windows.Forms

    我的project.json文件:我所有的net40特定代码都在NET40下定义.有什么想法吗?

  2. 发布到IIS.省略在服务器上安装.NET Core Windows Server Hosting软件包

    ASP.NETCore文档说,其中一个先决条件是目标服务器上的install.NETCoreWindowsServerHostingbundle.是否有可能以某种方式将此依赖项包含在由dotnet-publish创建的自包含包中,并避免现场安装?不.该软件包包含Asp.Net核心模块–以及使用IIS运行Asp.NETCore应用程序所需的本机IIS模块.如果未安装Asp.NET核心模块并且您通过安

  3. CentOS下安装.net core环境并部署WebAPI

    如果提示如下内容就说明启动成功了。

  4. 在CentOS上使用VS Code调试.Net Core应用程序

    VSCode运行后会看到如下图所示的效果。在VSCode界面中,单击最左边的图标按钮中的最后一个图标来安装扩展。主要的扩展包括C#、CodeRunner、C#Extensions和C#FixFormat。如果直接使用Yum安装,安装的是1.8版本的,不符合VSCode所需的版本要求2.1以上的要求,这个只能编译安装了,具体安装步骤可参考《HowtoInstallGit2.15onCentOS/RHEL7/6,Fedora27/26/25》这篇文章。一切准备就绪,现在可将应用程序项目通过SFTP上传到服务器

  5. CentOS 7下发布.net core 2.0 过程

    第5步:在vs中发布工程到本地磁盘发布后的结果如下第6步:验证工程是否可以运行在CMD中切换到发布的目录,执行命令:dotnetASPCore2.dll如果出现如下图所示表明发布成功,可以测试一下localhost:50003.发布到CentOS,并启动服务第1步:用WinSCP拷贝至CentOS系统中的/var/www/qa/中第2步:在CentOS中测试是否可以运行:在Xshell中执行:/opt/core2.0.3/dotnet/var/www/qa/ASPCore2.dll结果没有问题,在Cent

  6. 部署.net core到CentOS系统

    locationNum=10&fps=1

  7. CentOS下使用.Net Core 1.1部署WebApi

    一、安装CentOS系统二、在CentOS上安装最新的.NetCore安装教程在官网已经很详细了。

  8. Ubuntu &amp; GitLab CI &amp; Docker &amp; ASP.NET Core 2.0 自动化发布和部署1

    经过上面四篇博文中的相关安装和配置,我们主要完成了两个容器的创建和运行:gitlab和gitlab-runner:本篇博文目的:使用GitLabCI脚本编译ASP.NETCore2.0程序,然后将编译后的文件传输到服务器上,最后使用SSH连接服务器,并运行程序,完成发布和部署。简单来说,就是我们每次使用gitpush提交完代码,自动完成发布和部署。

  9. 在CentOS上部署Asp.net Core应用程序

    在此之前,我将同样的程序已经成功发布到了Ubuntu,我觉得,既然已经有了前一次的成功经验,不论CentOS还是Ubuntu都是Linux,道理应该差不多吧。但事实证明,还是有些差异的,某些在CentOS上频出的问题在Ubuntu上却没有,所以我的感觉是Ubuntu部署Asp.netCore程序更容易些。Asp.netCore应用需要反向代理配合才能运行,IIS、Apache和Nginx等Web服务软件都可以作为它的反向代理。在Ubuntu下部署与这个差不多,某些命令不一样。

  10. dotnet core 在ubuntu 上运行 F#

    dotnetcore在ubuntu上运行F#线装dotnetcoreubuntusudoapt-getupdatesudoapt-getinstallmono-completefsharpsudoyumupdatesudoyuminstallmono-completefsharp

返回
顶部