【问题标题】:.NET Core project.json commands - Set ASPNETCORE_ENVIRONMENT.NET Core project.json 命令 - 设置 ASPNETCORE_ENVIRONMENT
【发布时间】:2016-07-16 09:46:13
【问题描述】:

如果我从命令行运行set ASPNETCORE_ENVIRONMENT=Development && dotnet watch run,我的托管环境将设置为开发。

但是,如果我将同一行作为命令添加到我的 project.json 文件中,则观察程序的托管环境始终是生产环境:

"commands": {
  "watch": "set ASPNETCORE_ENVIRONMENT=Development && dotnet watch run"
},

是否有任何参数可以传递给 dotnet run 以使托管环境开发?我确实需要它作为命令工作。

【问题讨论】:

  • 如果我没记错的话,在迁移到 dotnet-cli 时已删除对命令的支持。替代它的是工具部分

标签: asp.net-core project.json


【解决方案1】:

您可以添加从命令行读取配置的Microsoft.Extensions.Configuration.CommandLine 包:

public class Program
{
    public static void Main(string[] args)
    {
        var config = new ConfigurationBuilder()
            .AddEnvironmentVariables()
            .AddCommandLine(args)
            .Build();

        var host = new WebHostBuilder()
            .UseEnvironment(config["ASPNETCORE_ENVIRONMENT"])
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();

        host.Run();
    }
}

使用dotnet run,您可以执行以下操作:

dotnet run --ASPNETCORE_ENVIRONMENT Development

你应该也可以用dotnet watch run 做类似的事情。

【讨论】:

  • 我总体上喜欢您发布的内容,但不幸的是,它不适用于我的特定用例。我遵循了您的代码示例,然后使用 --ASPNETCORE_ENVIRONMENT Development 参数更新了我的命令。没运气。事实上,arg 根本没有通过,并且在 UseEnvironment 行上被炸毁了。
【解决方案2】:

我终于想通了!

诀窍是右键单击项目,转到“属性”,然后选择“调试”选项卡。接下来,在 Profile 下,我选择了我的 projects.json 中定义的命令的名称:“watch”。选择后,我单击按环境变量添加,并添加名称/值对 ASPNETCORE_ENVIRONMENT 和 Development。

这实际上是在解决方案资源管理器的“属性”下上传 launchSettings.json 文件。该文件也可以手动编辑。输出如下所示:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:56846/",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "LendingTree.CreditCards.Web": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "Watcher Development": {
      "commandName": "Watcher Development",
      "launchBrowser": true,
      "launchUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-15
  • 2016-12-28
  • 1970-01-01
  • 1970-01-01
  • 2018-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多