.net core 是否可以在launchSettings.json中引用环境变量?

.net core 是否可以在launchSettings.json中引用环境变量?,.net-core,asp.net-core-mvc,.net Core,Asp.net Core Mvc,我想用一个可执行文件运行我的代码,它是NuGet包的一部分。因此,exe在我的用户配置文件目录中。因此,该文件如下所示: { “概况”:{ “UITests”:{ “命令名”:“可执行文件”, “executablePath”:“C:\\Users\\MarkKharitonov\\.nuget\\packages\\nunit.consolerunner\\3.9.0\\tools\\nunit3 console.exe”, “commandLineArgs”:“@params.txt--wh

我想用一个可执行文件运行我的代码,它是NuGet包的一部分。因此,exe在我的用户配置文件目录中。因此,该文件如下所示:

{
“概况”:{
“UITests”:{
“命令名”:“可执行文件”,
“executablePath”:“C:\\Users\\MarkKharitonov\\.nuget\\packages\\nunit.consolerunner\\3.9.0\\tools\\nunit3 console.exe”,
“commandLineArgs”:“@params.txt--where:\”方法==LoginSucceswithCorrectPassword\”。\\..\\UITests\\bin\\Debug\\net472\\UITests.dll”,
“工作目录”:“C:\\DFDeploymentSmokeTests\\LocalTestProfiles\\qa56”
}
}
}
是否可以引用环境变量UserProfile并使用它而不是
C:\\Users\\MarkKharitonov

编辑1


我根本不希望我的名字出现在文件中。这样,如果其他人的源代码位于同一个文件夹中(这不是问题),它就可以被重用。但是,只要我必须使用我的名字引用NuGet包的路径,这个文件就不能提交给源代码管理。

您可以通过

Environment.GetEnvironmentVariable("ASPNETCORE_PATH")
Configuration["ASPNETCORE_PATH"]

如果将.AddenEnvironment变量添加到配置中

var builder = new ConfigurationBuilder()
    ....
    .AddEnvironmentVariables();
Configuration = builder.Build();
然后您可以通过以下方式获得环境变量:

Environment.GetEnvironmentVariable("ASPNETCORE_PATH")
Configuration["ASPNETCORE_PATH"]
PS编辑:我可以将环境变量放在哪里,以便通过IConfiguration读取?

  • windows内部环境变量
  • 内部启动配置
  • 非法入境者

  • 通过大量实验,它似乎在某种程度上取决于正在运行的命令。更准确地说,命令在哪个shell中运行

    如果它位于cmd.exe中,
    %VARIABLE%
    应该可以工作

    如果它在powershell下运行,则在双引号可展开字符串中,它将是
    $env:VARIABLE
    ${env:VARIABLE}

    我会提出以下几点建议

    {
      "profiles": {
        "UITests": {
          "commandName": "Executable",
          "executablePath": "${env:UserProfile}\\.nuget\\packages\\nunit.consolerunner\\3.9.0\\tools\\nunit3-console.exe",
          "commandLineArgs": "@params.txt --where:\"method == LoginSuccessWithCorrectPassword\" ..\\..\\UITests\\bin\\Debug\\net472\\UITests.dll",
          "workingDirectory": "C:\\DFDeploymentSmokeTests\\LocalTestProfiles\\qa56"
        }
      }
    }
    

    假设UserProfile是C:\Users\MarkKharitonov

    我不明白。您的回答如何帮助我找出如何用UserProfile环境变量的值替换launchSettings.json中的
    C:\Users\MarkKharitonov
    ?如果将
    profiles\uuitests\uuuuu executablePath=C:\\Users\\MarkKharitonov
    添加到环境变量中。您可以通过
    Configuration[“profiles:UITests:executablePath”]
    阅读它,也许我不清楚。我添加了编辑1以澄清目的。请告诉我launchSettings.json将是什么样子。这不是堆栈溢出的工作原理。在私人聊天中继续,原始问题(也是我的问题)的答案仍然不可用。也就是说,我担心您可以引用任何有效的MSBuild变量,比如$(variable),包括环境变量。