【问题标题】:Get ASPNETCORE_ENVIRONMENT in T4 Template?在 T4 模板中获取 ASPNETCORE_ENVIRONMENT?
【发布时间】:2019-01-28 02:15:37
【问题描述】:

在 T4 模板中,我无法在当前设置为“开发”的项目中获取 ASPNETCORE_ENVIRONMENT 的值。

string env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");

这似乎运行良好,但返回 null。

【问题讨论】:

    标签: c# asp.net-core .net-core environment-variables t4


    【解决方案1】:

    在我的理解中,T4 始终是 Design Time -> Development Environment。因此,我不确定您到底想做什么。

    环境变量在Properties/launchSettings.json中设置,如果你通过Visual Studio启动你的项目就会被加载:

    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
    

    当然,T4 不会加载 launchSettings.json 中配置的变量,因为它不是应用程序本身。您可以手动解析文件,或在 Windows 或probably in MSBuild 中自行设置环境变量。

    【讨论】:

    • 实际上,这很完美,它为我提供了加载 appsettings.Development.json 文件所需的内容。我有点想 Environment.GetEnvironmentVariable() 将是一个运行时的东西,只是不确定如何获得变量。谢谢!
    • @BrettRossier 很高兴我能提供帮助。但是有一点警告:如果你生成代码,其中生成策略不同,取决于一个变量,它可能是一个标志,你有一个设计问题。如果可能,请仔细查看并可能在 CodeReview.SE 上发布问题
    • 在本例中,我从数据库条目生成一个 ViewModel 类,在开发和生产中应该是相同的。通过基于该变量,如果架构/数据尚未更新,则 Staging 中的构建应该会失败。只是作为一个预警。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    相关资源
    最近更新 更多